IonToCsvIonToCsv
​Ion​To​CsvCertified

Convert an ION file into CSV.

yaml
type: "io.kestra.plugin.serdes.csv.IonToCsv"

Download a CSV file, transform it in SQL and store the transformed data as a CSV file.

yaml
id: ion_to_csv
namespace: company.team

tasks:
  - id: download_csv
    type: io.kestra.plugin.core.http.Download
    description: salaries of data professionals from 2020 to 2023 (source ai-jobs.net)
    uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/salaries.csv

  - id: avg_salary_by_job_title
    type: io.kestra.plugin.jdbc.duckdb.Query
    inputFiles:
      data.csv: "{{ outputs.download_csv.uri }}"
    sql: |
      SELECT
        job_title,
        ROUND(AVG(salary),2) AS avg_salary
      FROM read_csv_auto('{{ workingDir }}/data.csv', header=True)
      GROUP BY job_title
      HAVING COUNT(job_title) > 10
      ORDER BY avg_salary DESC;
    store: true

  - id: result
    type: io.kestra.plugin.serdes.csv.IonToCsv
    from: "{{ outputs.avg_salary_by_job_title.uri }}"
Properties

Source file URI

Defaultfalse

Whether fields should always be delimited using the textDelimiter option.

DefaultUTF-8

The name of a supported charset

Defaultyyyy-MM-dd

Format to use for date

Defaultyyyy-MM-dd'T'HH:mm:ss.SSS[XXX]

Format to use for zoned datetime

Default,

The field separator character

Defaulttrue

Specifies if the first line should be the header

Default

The character used to separate rows

Default"

The text delimiter character

DefaultHH:mm:ss[XXX]

Format to use for time

DefaultEtc/UTC

Timezone to use when no timezone can be parsed on the source.

Formaturi

URI of a temporary result file

Number of records converted