SmartQueryTools

Convert Arrow to YAML Online

Convert Arrow files to YAML directly in your browser. Download clean, human-readable YAML — no upload required.

About converting Arrow to YAML

Arrow to YAML turns the output of a data frame step into something a configuration system can read. A Polars job might compute alert thresholds per sensor, a list of regions, or a feature flag rollout plan. The next consumer is a Helm values file, a GitHub Actions matrix, an Ansible inventory or a docs site, and all of those expect YAML.

YAML is only practical for small tables. It is slow to parse, and every row takes several lines. Arrow files often hold wide numeric data, and those columns become very long in YAML. An embedding column stored as a fixed_size_list is written with one number per line, so a single 768-value vector produces 768 lines for one row. Drop such columns before converting, and convert a filtered sample rather than the full file so the result stays reviewable in a pull request.

Values that a YAML reader might misinterpret are quoted. Timestamps become quoted strings, and so do labels from a categorical column that look like booleans or numbers, such as NO, off or 007. NaN from float columns is written as .nan, the YAML spelling that loaders read back as a floating point NaN.

Worked example

A small orders export with an ID, a customer name, a date, an amount (one missing) and a true/false flag, converted with the default settings.

Input (Arrow)

Arrow IPC file (binary, columnar) — shown as a table with its schema

order_idcustomerorder_dateamountshipped
1001Acme Ltd2026-03-02249.5true
1002Brightside Co2026-03-021200false
1003Acme Ltd2026-03-0589.99true
1004Northwind2026-03-07NULLfalse

Schema: order_id BIGINT, customer VARCHAR, order_date DATE, amount DOUBLE, shipped BOOLEAN

Output (YAML)

- order_id: 1001
  customer: Acme Ltd
  order_date: '2026-03-02'
  amount: 249.5
  shipped: true
- order_id: 1002
  customer: Brightside Co
  order_date: '2026-03-02'
  amount: 1200
  shipped: false
- order_id: 1003
  customer: Acme Ltd
  order_date: '2026-03-05'
  amount: 89.99
  shipped: true
- order_id: 1004
  customer: Northwind
  order_date: '2026-03-07'
  amount: null
  shipped: false

What changes when you convert Arrow to YAML

  • Each Arrow row becomes a mapping in a top-level sequence, with keys in schema order.
  • Timestamps become quoted strings such as '2026-03-02 09:15:00.123', cut to milliseconds and expressed in UTC.
  • NaN becomes .nan and a null becomes null, so the two stay distinguishable.
  • Structs become nested mappings and lists become block sequences, one item per line. Map columns become mappings keyed by the map keys.
  • Dictionary-encoded columns are written as their string values, quoted where a YAML 1.1 reader would otherwise see a boolean or number.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Frequently Asked Questions

Why does my YAML file have thousands of lines for a few rows?

A list column, often an embedding or a histogram, is written as a block sequence with one item per line. Drop or summarise that column in the SQL Query tool before converting.

How are NaN and null told apart in the YAML?

NaN is written as .nan and null as null. PyYAML and js-yaml both load .nan as a float NaN and null as None or null.

Can I use the output directly as a Helm values file?

Helm values are usually a mapping at the top level, and this output is a list of rows. Paste it under a key, for example sensors:, and indent it by two spaces.

Related Tools