SmartQueryTools

Convert Parquet to YAML Online

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

About converting Parquet to YAML

Parquet to YAML is a niche but real conversion. It comes up when a small reference table lives in a lakehouse and also needs to feed configuration: country and currency lists, feature flags per market, dbt seed or test fixtures, Kubernetes or Ansible variables, or a static site generator data file. YAML is easy to review in a pull request, which a binary Parquet file is not.

Keep it to small tables. A YAML file with thousands of rows is slow to parse and awkward to edit, and it throws away the compression and types that made the Parquet file useful. If the goal is only to look at the data, a viewer or a CSV export is a better fit.

The output is a YAML sequence with one mapping per row. Values that a YAML reader might misread are quoted: dates and timestamps, DECIMAL strings like '249.50', codes with leading zeros, and words such as NO, yes and off that YAML 1.1 parsers like PyYAML would otherwise turn into booleans. That protects against the well-known Norway problem when the file is read back.

Worked example

A small sample file, converted with the default settings.

Input (Parquet)

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

order_idcustomerordered_atamountshipped
1001Acme Ltd2026-03-02 09:15:00249.50true
1002Brightside Co2026-03-02 14:40:001200.00false
1003Acme Ltd2026-03-05 08:05:3089.99true
1004Northwind2026-03-07 17:22:00NULLfalse

Schema: order_id BIGINT, customer VARCHAR, ordered_at TIMESTAMP WITH TIME ZONE, amount DECIMAL(10,2), shipped BOOLEAN

Output (YAML)

- order_id: 1001
  customer: Acme Ltd
  ordered_at: '2026-03-02 09:15:00'
  amount: '249.50'
  shipped: true
- order_id: 1002
  customer: Brightside Co
  ordered_at: '2026-03-02 14:40:00'
  amount: '1200.00'
  shipped: false
- order_id: 1003
  customer: Acme Ltd
  ordered_at: '2026-03-05 08:05:30'
  amount: '89.99'
  shipped: true
- order_id: 1004
  customer: Northwind
  ordered_at: '2026-03-07 17:22:00'
  amount: null
  shipped: false

What changes when you convert Parquet to YAML

  • Each row becomes a list item starting with a dash, and each column becomes a key: value line under it.
  • DECIMAL values are written as quoted strings, so amount appears as '249.50'. DOUBLE and BIGINT values are plain numbers.
  • Timestamps are quoted strings such as '2026-03-02 09:15:00', so a YAML loader does not convert them into its own date type. Timezone-aware values are in UTC.
  • Structs become nested mappings and lists become nested sequences, indented under their key. MAP columns become mappings from each map key to its value.
  • NULL is written as null, as for order 1004. Booleans are written as true and false.

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 are my dates in quotes in the YAML output?

Unquoted, a YAML loader would turn 2026-03-02 into a native date object and a timestamp into a datetime, which changes the type when the file is read back. Quoting keeps them as the strings they were exported as.

Can I use the output as a dbt seed or fixture?

dbt seeds are CSV files, so use Parquet to CSV for those. The YAML output works for dbt unit test fixtures and vars, and for any tool that reads a list of mappings.

Will PyYAML read the file correctly?

Yes. Strings that YAML 1.1 treats as booleans, such as yes, no, on and off, are quoted, and so are strings that look like numbers or dates. yaml.safe_load returns the same values the Parquet file held, with DECIMAL and timestamps as strings.

Related Tools