ツールへ移動
ViewCSV
ファイルはアップロードされません

CSV を Parquet に変換

orders.csv· サンプル15 行 · 8 列
値の型
文字列の列は UTF-8 の STRING として書き出します。判定を有効にすると、すべての値が当てはまる列は INT64・DOUBLE・BOOLEAN になります。
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041悠真 吉田札幌USB-C cable179.892026-01-13paid
2001042颯太 中村名古屋USB-C cable577.862026-02-07refunded
3001043陽翔 中村東京Notebook A53172.842026-03-14paid
4001044大和 渡辺名古屋Notebook A5948.542026-04-26shipped
5001045陽翔 吉田横浜USB-C cable1·2026-05-18pending
6001046葵 山本大阪USB-C cable463.782026-06-21paid
7001047 蓮 山本 横浜Chair, ergonomic9211.492026-07-27paid
8001048陽翔 吉田札幌Coffee beans 1kg5122.042026-08-04paid
9001049湊 山本福岡Chair, ergonomic4122.112026-09-19refunded
10001050蓮 小林大阪Monitor 27"6230.792026-01-21shipped
11001051芽依 加藤神戸Desk lamp8173.372026-02-04pending
12001052陽翔 山田名古屋Notebook A56192.932026-03-06shipped
13001053陽葵 小林京都Notebook A51111.892026-04-07shipped
14001054陽葵 加藤大阪Chair, ergonomic4169.552026-05-17paid
15001043陽翔 中村東京Notebook A53172.842026-03-14paid

15 行 · 1 ファイル JavaScript の Parquet ライターでブラウザー内に書き出します。アップロードは一切ありません。

CSV ファイルを開くか貼り付けて、Parquet をダウンロード を選びます。既定ではすべての列が null を許容する UTF-8 の STRING になるため、000917 のような ID の先頭のゼロも残り、空のセルは null になります。すべての値が当てはまる列を INT64、DOUBLE、BOOLEAN にしたい場合は、数値と true/false を判定する を選んでください。ファイルはブラウザー内で JavaScript の Parquet ライターによって書き出され、アップロードは一切ありません。

CSV を Parquet に変換する手順

  1. .csv、.tsv、.txt ファイルを開くか、ツールにドロップするか、行を貼り付けます。入力 の表を確認し、必要に応じて 読み込み設定 で区切り文字、見出し行、文字コードを設定してください。
  2. 値の型、圧縮、空の文字列を null として書き出す かどうか、行グループあたりの行数 を選びます。
  3. 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 のまま残ります。

CSV
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"
Parquet(PyArrow で読み込み)
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 を選んでください。「なし」はデバッグのときだけ使います。

規格と参考資料