All nodes/Data/DataFrame Ops

DF Merge

SQL JOIN of two DataFrames: inner/left/right/outer/cross. Connect the left table to ``left`` and the right table to ``right``.

DF Merge
LeftSuccess
RightError

Type in the graph: df_merge

Exec

An error branch can be enabled (expose_error_output) to handle failures on their own path.

Ports can be split into separate execution and data handles.

Try it

Minimal working workflow

Entry
DF Merge
Exit
  • Execute + Data
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Runs as pasted

When to use it

Joins two tables on shared keys — the SQL JOIN of the family: customer data pulled onto order rows, price-list values pulled onto a CRM export. If both tables mean the same thing and simply need to be stacked, that is df_concat.

The two inputs are not symmetrical. “Left” carries both execution and value: an arrival there runs the node. “Right” carries value only — it starts nothing and just reads what has already been computed.

How it works

“How” sets the semantics: inner keeps only rows that have a match, left and right keep every row of the corresponding side, outer keeps all rows from both, and cross pairs every left row with every right row.

“Join keys” are the columns that must match and must be named the same in both tables. A cross join has no keys by definition, so the field is hidden in that mode.

Same-named non-key columns do not collide: the left one gets _left, the right one _right. Both suffixes are configurable in the advanced settings.

Common mistakes

  • The right branch has not run yet. The “Right” port does not start the node, so the branch that prepares the right-hand table has to finish earlier along the execution path. Otherwise the node fails, reporting that its input is not a table.
  • The key has different names. client_id on the left and id on the right will not join — rename the column with df_select first.
  • Mismatched key types. A number on the left and text on the right: pandas refuses to join such columns and the node fails.
  • Empty keys with anything other than cross. The graph fails validation.

Inputs

PortWirePayloadNotes
LeftleftExecute + Dataexecute_datadataframe
RightrightDatadatadataframe

Outputs

PortWirePayloadNotes
SuccessoutputExecute + Dataexecute_datadataframe
Erroron_errorExecute + Dataexecute_data

shown when expose_error_output = true

Configuration

FieldTypeDefaultDescription
Howhowstringinner

Join semantics. ``cross`` pairs every left row with every right row.

Options: inner, left, right, outer, cross

Join keysonarray<string>

Columns that must match in both frames.

shown when how = inner | left | right | outer

Advanced
Suffix for left collisionsleft_suffixstring_left

Appended to a left column whose name also exists on the right.

Suffix for right collisionsright_suffixstring_right

Appended to a right column whose name also exists on the left.

Shared fields

Every node has these three — the platform adds them, not the node author.

  • expose_error_output — When enabled, show an execution output to connect nodes that run if this step fails.
  • split_ports_in — Show separate execution and data input handles instead of one combined port.
  • split_ports_out — Show separate execution and data output handles instead of one combined port.