Skip to content

Convert Parquet rows to CSV or JSON ​

Convert a Parquet file by reading it into a typed table or a server file() relation, then selecting the desired output format. Decide how nested values and nulls should appear before choosing CSV for a consumer.

For a file already placed under user_files_path, an explicit server schema is required:

sql
SELECT id, name
FROM file('people.parquet', parquet, 'id UInt64, name String')
ORDER BY id
FORMAT csv_with_names;

Write the conversion on the client ​

Run the SELECT through native --query and redirect stdout to a new file. Use FORMAT json_each_row instead when the consumer needs one named object per row. Keep explicit selected columns and ORDER BY when deterministic output matters.

Parquet's schema does not remove the destination declaration requirement for ordinary file() input. Read the type-mapping reference for timestamps, exact decimals, geometry and binary values. A valid conversion can still lose meaning if a downstream CSV tool interprets strings as dates or floating-point numbers.

Check the command status and read a sample with the intended consuming tool. Query result-row and response-byte limits still apply; use verified ranges for a conversion that exceeds one response.

See file source, Parquet and native client.