Transform Zip

Transform Zip

Certified

Combine records by row position

Merge multiple record streams row by row, combining record i from each input and resolving field conflicts.

yaml
type: io.kestra.plugin.transform.Zip

Zip records from multiple sources

yaml
id: zip_two_sources
namespace: company.team

tasks:
  - id: left
    type: io.kestra.plugin.core.output.OutputValues
    values:
      records:
        - id: 1
          left_value: L1
        - id: 2
          left_value: L2

  - id: right
    type: io.kestra.plugin.core.output.OutputValues
    values:
      records:
        - id: 1
          right_value: R1
        - id: 2
          right_value: R2

  - id: zip
    type: io.kestra.plugin.transform.Zip
    inputs:
      - "{{ outputs.left.values.records }}"
      - "{{ outputs.right.values.records }}"
    onConflict: RIGHT
Properties

Input records

List of two or more inputs (Ion list/struct or storage URIs) to align and merge by row position. All inputs must have the same length.

DefaultFAIL
Possible Values
FAILLEFTRIGHT

On conflict behavior

Controls duplicate field names while merging a row. FAIL errors, LEFT keeps the first value, and RIGHT overwrites with the later value.

DefaultFAIL
Possible Values
FAILSKIP

On error behavior

FAIL stops the task on row merge errors, and SKIP drops the current row.

DefaultTEXT
Possible Values
TEXTBINARY

Output format

Experimental: TEXT or BINARY. Only transform tasks can read binary Ion. Use TEXT as the final step.

DefaultAUTO
Possible Values
AUTORECORDSSTORE

Output type

AUTO stores to internal storage when any input is a storage URI; otherwise it returns records.

Reference (ref) of the pluginDefaults to apply to this task.

Zipped records

JSON-safe records when output mode is RECORDS or AUTO resolves to RECORDS.

Stored Ion file URI

URI to the stored Ion file when output mode is STORE or AUTO resolves to STORE.