Transform Select

Transform Select

Certified

Align, filter, and project records

Align multiple inputs by row position, optionally filter the combined rows, and project typed output fields.

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

Join three inputs by row position, filter, and project typed fields

yaml
id: select_join_inputs
namespace: company.team

tasks:
  - id: orders
    type: io.kestra.plugin.core.output.OutputValues
    values:
      records:
        - order_id: o1
          amount: 120
        - order_id: o2
          amount: 70

  - id: customers
    type: io.kestra.plugin.core.output.OutputValues
    values:
      records:
        - name: Alice
        - name: Bob

  - id: scores
    type: io.kestra.plugin.core.output.OutputValues
    values:
      records:
        - score: 0.9
        - score: 0.4

  - id: select
    type: io.kestra.plugin.transform.Select
    inputs:
      - "{{ outputs.orders.values.records }}"
      - "{{ outputs.customers.values.records }}"
      - "{{ outputs.scores.values.records }}"
    where: amount > 100 && $3.score > 0.8
    fields:
      orderId: order_id
      customer: $2.name
      amount: $1.amount
      score: $3.score
    outputType: RECORDS
Properties

Input records

List of one or more inputs (Ion list/struct or storage URIs) to align by row position.

Defaulttrue

Drop null fields

Omits output fields whose final value is null after projection and merging.

Fields

Optional output field definitions keyed by target field name. Each value can be a shorthand expression string or an object with expr, optional type, and optional. If omitted, the task returns the merged row.

Definitions
exprstring

Expression

Expression used to compute the output field value from the merged row. Supports positional references such as $1, $2, and merged row fields.

optionalboolean
Defaultfalse

Optional

When true, allows the field to be omitted when the evaluated value is null. Expression and cast errors are still handled by onError.

typestring
Possible Values
STRINGINTFLOATDECIMALBOOLEANTIMESTAMPLISTSTRUCT

Output type

Optional Ion type to cast the evaluated value to before writing the output field.

SubTypeinteger
Default[]

Keep input fields

When fields are provided, also merge the full fields from the selected inputs into the output row. Values are 1-based input indices such as [1] or [1, 2].

DefaultFAIL
Possible Values
FAILSKIPKEEP

On error behavior

FAIL stops the task on row errors, SKIP drops the current row, and KEEP emits the merged input row.

DefaultFAIL
Possible Values
FAILSKIP

On length mismatch behavior

FAIL errors when input lengths differ. SKIP processes aligned rows only and stops at the shortest input.

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. If one input is a URI and another is in-memory records, AUTO still resolves to STORE.

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

Filter expression

Optional boolean expression evaluated on each aligned row after the inputs are merged. Supports positional references such as $1, $2, and fields from the merged row.

Selected 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.