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.