Event export
- Input
- CSV: event_id,created_at,paid,total\nevt_1,2026-09-10T20:00:00Z,true,1234.50
- Output
- Parquet schema: event_id string, created_at timestamp, paid bool, total double; compressed with Snappy.
CSV to Parquet runs through our table engine, writing a single-row-group Snappy Parquet file for analytics tools.
From real runs
| Element | Result | What happens |
|---|---|---|
| Rows and columns | Kept | Delimited records become Parquet columns with the same header names and row order. |
| Schema inference | Changed | Each column is inferred as int64, double, bool, string, or timestamp when type inference is enabled. |
| All-string mode | Changed | Turning typeInference off writes every column as string, which protects identifiers and locale-formatted values. |
| Compression | Changed | Output uses Snappy compression to reduce size while staying broadly readable. |
| Row groups | Changed | The writer emits a single row group, which is simple and compatible but not tuned for very large distributed scans. |
| Tool compatibility | Kept | The generated file is readable by pandas, DuckDB, BigQuery, and Spark when the inferred schema matches expectations. |
| CSV text details | Lost | Original delimiter choice, quote style, row endings, and BOM are not represented in Parquet metadata. |
Delimited records become Parquet columns with the same header names and row order.
Each column is inferred as int64, double, bool, string, or timestamp when type inference is enabled.
Turning typeInference off writes every column as string, which protects identifiers and locale-formatted values.
Output uses Snappy compression to reduce size while staying broadly readable.
The writer emits a single row group, which is simple and compatible but not tuned for very large distributed scans.
The generated file is readable by pandas, DuckDB, BigQuery, and Spark when the inferred schema matches expectations.
Original delimiter choice, quote style, row endings, and BOM are not represented in Parquet metadata.
We converted our CSV sample (226 B) with Table engine on 2026-09-11. It took 2 ms and produced a 816 B Apache Parquet file, 3.6× larger than the input. The engine raised no warnings.
Input · sample.csv · 226 B
4 data rows × 5 columns; header: company,stage,arr,owner,close_date
Output · sample.parquet · 816 B
Parquet file (PAR1 magic present)
pandas + pyarrow
python - <<'PY'
import pandas as pd
pd.read_csv("in.csv").to_parquet("out.parquet", engine="pyarrow", compression="snappy", index=False)
PYInstall pyarrow and set dtype for identifiers such as ZIP codes before reading.
DuckDB
duckdb -c "COPY (SELECT * FROM 'in.csv') TO 'out.parquet' (FORMAT PARQUET, COMPRESSION SNAPPY);"DuckDB has its own type inference; use explicit casts if the inferred schema is wrong.
The HTTP API and the MCP server run the exact engine this page uses (Table engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=csv&to=parquet.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.csv" -F "from=csv" -F "to=parquet" \
-F 'options={"delimiter":","}' \
--output output.parquet| Key | Applies to | Type | Default |
|---|---|---|---|
| delimiter | Reading CSV | string | , |
| header | Reading CSV | boolean | true |
| quote | Reading CSV | string | " |
| encoding | Reading CSV | utf-8 · latin1 | utf-8 |
Columns are inferred as int64, double, bool, string, or timestamp. Turn typeInference off to write all columns as strings.
Yes. The browser writer uses Snappy compression and a single row group for broad tool compatibility.
Yes. The output is intended to be readable by pandas, DuckDB, BigQuery, and Spark when the schema matches the data.