FileTransform
FileTransform
yaml
type: "io.kestra.plugin.scripts.nashorn.FileTransform"
Transform ion format file from Kestra's internal storage with a Nashorn (JavaScript) script.
Examples
Transform with file from internal storage
yaml
id: nashorn_file_transform
namespace: company.team
tasks:
- id: file_transform
type: io.kestra.plugin.scripts.nashorn.FileTransform
from: "{{ outputs['avro-to-gcs'] }}"
script: |
logger.info('row: {}', row)
if (row['name'] === 'richard') {
row = null
} else {
row['email'] = row['name'] + '@kestra.io'
}
Create multiple rows from one row.
yaml
id: nashorn_file_transform
namespace: company.team
inputs:
- id: file
type: FILE
tasks:
- id: file_transform
type: io.kestra.plugin.scripts.nashorn.FileTransform
from: "{{ inputs.file }}"
script: |
logger.info('row: {}', row)
rows = [{"action": "insert"}, row]
Transform JSON string input with a Nashorn script.
yaml
id: nashorn_file_transform
namespace: company.team
tasks:
- id: file_transform
type: io.kestra.plugin.scripts.nashorn.FileTransform
from: "[{"name":"jane"}, {"name":"richard"}]"
script: |
logger.info('row: {}', row)
if (row['name'] === 'richard') {
row = null
} else {
row['email'] = row['name'] + '@kestra.io'
}
Properties
from
- Type: string
- Dynamic: ✔️
- Required: ✔️
Source file containing rows to transform.
Can be Kestra's internal storage URI, a map or a list.
concurrent
- Type: integer
- Dynamic: ❌
- Required: ❌
- Minimum:
>= 2
Number of concurrent parallel transformations to execute.
Take care that the order is not respected if you use parallelism.
script
- Type: string
- Dynamic: ✔️
- Required: ❌
A full script.
Outputs
uri
- Type: string
- Required: ❌
- Format:
uri
URI of a temporary result file.
The file will be serialized as ion file.
Was this page helpful?