Skip to main content

Data Joiner

Overview​

The Data Joiner node combines two DataFrame inputs into one DataFrame by joining rows from a left input and a right input.

Purpose​

Use Data Joiner when two upstream nodes produce related tables and you need one combined table for later transformations, exports, reports, or destinations. For example, you can join a database query result with rows imported from an Excel file.

Configuration​

Configure the join in the node dialog:

SettingDescription
Left Input / Right InputThe two DataFrame ports to join.
Join ColumnsOne or more pairs of columns used to match rows between the left and right inputs.
Column FunctionOptional normalization applied before matching: None, Trim, Upper Case, or Lower Case.
Link TypeThe join type: Inner Join, Full Outer Join, Left Outer Join, or Right Outer Join.

Inputs​

InputData TypeInput TypeDescription
LeftDataFrameDataFrameSingleA DataFrame connected to the LeftDataFrame port.
RightDataFrameDataFrameSingleA DataFrame connected to the RightDataFrame port.

Outputs​

OutputData TypeCollectionDescription
OutputDataFrameDataFrameFalseA DataFrame containing the joined rows and selected columns.

Properties​

PropertyFlowDataTypeDescription
DATA_JOINER_SQL_STATEMENTStringThe query that been executed

Processing Logic​

At runtime, the node reads both inputs from their parquet-backed DataFrame storage, builds a DuckDB query for the configured join, creates the output schema from the query result, and writes the joined result into a new DataFrame.

If no rows match the selection, the node emits a warning while still producing the output DataFrame structure.

Examples​

Join an orders DataFrame to a customers DataFrame:

  • Left column: customer_id
  • Right column: id
  • Link Type: LEFT_OUTER
  • Result: all order rows are kept, with matching customer columns added when available.

Notes / Limitations​

  • Both inputs must be DataFrames.
  • Join column values must be compatible after any selected Trim, Upper Case, or Lower Case function is applied.
  • For more complex SQL, use Query In-Memory.