
Transform Select
CertifiedAlign, filter, and project records
Transform Select
Align, filter, and project records
Align multiple inputs by row position, optionally filter the combined rows, and project typed output fields.
type: io.kestra.plugin.transform.SelectExamples
Join three inputs by row position, filter, and project typed fields
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
inputs *RequiredNon-dynamicarray
Input records
List of one or more inputs (Ion list/struct or storage URIs) to align by row position.
dropNulls booleanstring
trueDrop null fields
Omits output fields whose final value is null after projection and merging.
fields object
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.
io.kestra.plugin.transform.Select-FieldDefinition
Expression
Expression used to compute the output field value from the merged row. Supports positional references such as $1, $2, and merged row fields.
falseOptional
When true, allows the field to be omitted when the evaluated value is null. Expression and cast errors are still handled by onError.
STRINGINTFLOATDECIMALBOOLEANTIMESTAMPLISTSTRUCTOutput type
Optional Ion type to cast the evaluated value to before writing the output field.
keepInputFields array
[]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].
onError string
FAILFAILSKIPKEEPOn error behavior
FAIL stops the task on row errors, SKIP drops the current row, and KEEP emits the merged input row.
onLengthMismatch string
FAILFAILSKIPOn length mismatch behavior
FAIL errors when input lengths differ. SKIP processes aligned rows only and stops at the shortest input.
outputFormat string
TEXTTEXTBINARYOutput format
Experimental: TEXT or BINARY. Only transform tasks can read binary Ion. Use TEXT as the final step.
outputType string
AUTOAUTORECORDSSTOREOutput 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.
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
where string
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.
Outputs
records array
Selected records
JSON-safe records when output mode is RECORDS or AUTO resolves to RECORDS.
uri string
Stored Ion file URI
URI to the stored Ion file when output mode is STORE or AUTO resolves to STORE.