CSV ファイルを開くか貼り付けて、Parquet をダウンロード を選びます。既定ではすべての列が null を許容する UTF-8 の STRING になるため、000917 のような ID の先頭のゼロも残り、空のセルは null になります。すべての値が当てはまる列を INT64、DOUBLE、BOOLEAN にしたい場合は、数値と true/false を判定する を選んでください。ファイルはブラウザー内で JavaScript の Parquet ライターによって書き出され、アップロードは一切ありません。
CSV を Parquet に変換する手順
.csv、.tsv、.txtファイルを開くか、ツールにドロップするか、行を貼り付けます。入力 の表を確認し、必要に応じて 読み込み設定 で区切り文字、見出し行、文字コードを設定してください。- 値の型、圧縮、空の文字列を null として書き出す かどうか、行グループあたりの行数 を選びます。
- Parquet をダウンロード を選び、DuckDB、pandas、Polars、Spark など、任意の Parquet 対応ツールで
.parquetファイルを読み込みます。
多数のファイルを同じ設定で変換するには、一括変換:複数のファイルを変換 を選びます。各ファイルがそれぞれ 1 つの Parquet ファイルになり、まとめて 1 つの ZIP としてダウンロードされます。一括変換では、各ファイルを 25 MB 以下にする必要があります。
スキーマと列の型
列名は、見出し行に書かれたとおりに使われます。空の見出しは Column 3、重複した見出しは name (2) になるため、Parquet のすべての列が一意な名前を持ちます。すべての列は省略可能(null を許容)です。
| すべての値を文字列のまま扱う | 既定の設定です。すべての列が UTF-8 の文字列として注釈された BYTE_ARRAY になり、先頭のゼロ、1,5、N/A、日付の形式も含め、各値をバイト単位でそのまま保持します。 |
|---|---|
| 整数(判定あり) | 空でないすべての値が、先頭のゼロがなく −9,007,199,254,740,991~9,007,199,254,740,991 の範囲にある整数の場合は INT64 になります。それより大きな整数がある列は文字列のままです。 |
| 小数(判定あり) | すべての値が有効数字 15 桁以下の単純な小数で、変換しても変わらない場合は DOUBLE になります。12 と 2.5 が混在する列は DOUBLE になります。 |
| true / false(判定あり) | すべての値が大文字・小文字を問わず true または false の場合は BOOLEAN になります。 |
| 日付とタイムスタンプ | どちらのモードでも 2026-03-01T08:00:00Z のように STRING のままです。DuckDB の CAST(reading_at AS TIMESTAMP) のように、クエリ エンジン側で変換してください。 |
型付きの列では、空のセルは常に null になります。文字列の列では、空の文字列を null として書き出す(既定でオン)によって、空のセルを null にするか空の文字列 "" にするかが決まります。
圧縮と行グループ
| Snappy(高速・一般的な既定値) | 既定の圧縮方式です。一般的な Parquet の読み取りツールはすべて対応しています。 |
|---|---|
| Gzip(より小さい) | 通常は Snappy よりファイルが小さくなります。軽量な読み取りツールの中には、gzip に対応していないものもあります。 |
| なし | 圧縮しません。デバッグ用や、展開機能のないツール向けです。 |
| 行グループあたりの行数 | 既定は 100,000 で、1,000~1,000,000 の範囲で指定できます。ブラウザーの作業画面で扱えるのは 10万行までなので、既定では行グループが 1 つになります。値を小さくすると行グループが複数になり、読み取りツールが不要な部分を飛ばしたり並列に読み込んだりできます。 |
ファイルのメタデータには、書き出したライブラリ(hyparquet)と created_by_app キーも記録されます。
CSV から Parquet への変換でよくある問題
- 数値の列が STRING になっている。 すべての値を文字列のまま扱う が選ばれているか、
1,234、12 kg、007、16 桁の小数など、単純な数値でない値が 1 つあります。列のプロファイル や CSV ビューアー で見つけてください。 - 別のツールで ID の先頭のゼロが消えた。 このツールが、先頭がゼロの値を含む列を数値にすることはありません。ID が変わっている場合は、変換の前に CSV を表計算ソフトで開いて保存した可能性があります。CSV ビューアー で元のファイルを確認してください。
- すべての値が 1 つの列に入ってしまう。 区切り文字の判定が誤っています。読み込み設定 で選んでください。
- ファイルが大きすぎてこのツールで扱えない。 Parquet への変換は、25 MB、10万行、250 列、200万セルまでのファイルで使えます。CSV を分割 して変換するか、ダウンロードを小さくしたいだけであれば gzip で CSV を圧縮 してください。
制限とプライバシー
CSV はブラウザーの作業画面で開ける大きさである必要があります。上限は 25 MB、10万行、250 列、200万セルです。Parquet ファイルは、メモリ内で 1 回の処理で作成されます。
書き出しには、変換するときにだけ読み込まれる純粋な JavaScript のライブラリ hyparquet-writer を使い、WebAssembly やサーバーでの処理はありません。このタブ内のバックグラウンドのワーカーで動作するため、ページの操作が止まることはなく、キャンセル で中止できます。CSV がサーバーに送信されることはありません。クエリを実行できるデータベース ファイルが必要な場合は、CSV を SQLite に変換 を使ってください。
例:センサーの測定値を PyArrow で読み込み直す
先頭がゼロの ID、ISO 形式のタイムスタンプ、空のセル、引用符で囲まれたコンマを含むセンサーの測定値を、数値と true/false を判定する と既定の Snappy 圧縮で変換し、PyArrow で読み込み直した例です。temp_c は DOUBLE に、ok は BOOLEAN になり、sensor_id と reading_at は文字列のままです。既定の すべての値を文字列のまま扱う では、5 列すべてが string になり、ok も書かれたとおりの TRUE のまま残ります。
sensor_id,reading_at,temp_c,ok,site 000917,2026-03-01T08:00:00Z,21.5,true,Lab 2 000918,2026-03-01T08:05:00Z,,false, 000919,2026-03-01T08:10:00Z,-3,TRUE,"Roof, north"
schema:
sensor_id: string
reading_at: string
temp_c: double
ok: bool
site: string
rows: 3, row groups: 1, compression: SNAPPY
{'sensor_id': '000917', 'reading_at': '2026-03-01T08:00:00Z', 'temp_c': 21.5, 'ok': True, 'site': 'Lab 2'}
{'sensor_id': '000918', 'reading_at': '2026-03-01T08:05:00Z', 'temp_c': None, 'ok': False, 'site': None}
{'sensor_id': '000919', 'reading_at': '2026-03-01T08:10:00Z', 'temp_c': -3.0, 'ok': True, 'site': 'Roof, north'}よくある質問
変換のために CSV がアップロードされますか?
いいえ。Parquet ファイルは、ブラウザーのタブ内のワーカーで JavaScript のライブラリによって書き出され、ダウンロードするファイルも端末上で作成されます。
日付が Parquet の DATE や TIMESTAMP として書き出されないのはなぜですか?
CSV の日付はさまざまな形式やタイム ゾーンで書かれており、黙って推測すると値がずれるおそれがあるためです。日付はファイルのとおりの文字列で書き出されます。形式とタイム ゾーンを指定できる DuckDB、Spark、pandas などで変換してください。
どの圧縮方式を選べばよいですか?
Snappy は、ほぼすべての Parquet の読み取りツールで使えます。ファイルサイズを優先し、読み取りツールが対応している場合は gzip を選んでください。「なし」はデバッグのときだけ使います。