Post-Join Assembly (

) is used to expand a composite record produced by a join or pre-join operation into one or more individual key–value records.
It takes an input record in the form:
[key, list(values)]
and extracts it into multiple output records:
[key, value]
(one record for each value in the list).
Purpose of Post-Join Assembly
The Post-Join Assembly is typically used to:
- Flatten the result of a join or Pre-Join Assembly
- Convert list-based join results back into row-based records
- Enable further transformations, aggregations, or filtering
- Prepare data for output sinks (files, databases, streams)
How It Works
- Receives an input record consisting of:
- Iterates over the list.
- Emits one output record per value, each paired with the same key.
- Sends the expanded records downstream.
Example
Input Record
[A, [10, 20, 30]]
Output Records
Typical Usage Flow
Source
↓
Transform Assembly
↓
Pre-Join Assembly
↓
Join Assembly
↓
Post-Join Assembly
↓
Transform / Group / Sink
Key Characteristics
- Converts list-based records into flat records
- Emits one or more records per input
- Preserves the original key for each emitted record
- Commonly used after Join or Pre-Join operations
- Complements the Pre-Join Assembly
Summary
The Post-Join Assembly performs the inverse operation of the Pre-Join Assembly by unpacking aggregated lists into individual records. This step restores a relational, record-oriented structure suitable for downstream processing and output.
Supported Engines
Map Reduce |
Spark 1.x RDD |
Spark 2.x RDD |
Spark 2.x Dataset |
Apache Beam 2.29.0 Batch |
Apache Beam 2.29.0 Streaming |
Apache Flink 1.12.0 Batch |
Apache Flink 1.12.0 Streaming |
Apache Tez 0.9.1 |
PySpark |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |