JSON を Parquet に変換

ここで JSON を Parquet に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 変換はお使いのブラウザーの中で行われるので、ファイルはアップロードされません。Windows でも macOS でも Linux でも、iPhone でも Android でも同じように動き、通信を切っても動き続けます。

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 作り直し ParquetはJSONとは仕組みが違います。非可逆コーデックのような段階的な劣化ではありません。Parquetが表現できるものは忠実に再現され、対応するものがないものはまったく残りません。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。
  • 知っておきたいこと 入れ子のオブジェクトは平らにされて列になります。深く入れ子になったデータは形を失います。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

データ分析基盤に読み込ませるために

Parquet は列指向のバイナリ形式で、Spark や BigQuery、Athena のような分析基盤が好んで読み込みます。JSON のログやエクスポートデータをそうした基盤に取り込みたいとき、この変換が必要になります。

ネストした構造はドット区切りの列になる

JSON の値がオブジェクトの中にオブジェクトを持つような入れ子構造の場合、この変換は `user.address.city` のようにドットでつないだ列名に平坦化します。表形式の Parquet には、もともと入れ子を表す仕組みがないためです。

配列も同様に、要素の位置を示す番号がパスの一部として列名に組み込まれます。

型は 4 種類だけに絞られる

この変換器が Parquet に書き込む型は真偽値、32 ビット整数、倍精度浮動小数点数、文字列の 4 種類だけです。JSON の細かい型の違いはこの 4 つのどれかに丸められます。

32 ビット整数の範囲を超える大きな整数は、64 ビット整数としてではなく倍精度浮動小数点数として書き込まれます。実際には持っていない精度を約束しないための選択です。

1 つでも例外があると列全体が文字列になる

同じ列の中に数値と文字列が混在している場合、この変換器はその列全体を文字列として書き出します。1 つの値が数値として読めないだけで、その列にあるすべての値が影響を受けます。

変換前に JSON の各キーの型がそろっているか確認しておくと、意図しない文字列化を避けられます。

スキーマは列ごとに推測される

Parquet はあらかじめ型を宣言してからデータを書く形式ですが、この変換は元の JSON にスキーマの宣言がないため、各列のデータを実際に見てから型を決めます。列によって推測結果が異なるのはこのためです。

圧縮方式は変換器が選べる範囲の外にある

書き出される Parquet がどの圧縮アルゴリズムを使っているかは、この変換が使っているライブラリーの既定値に委ねられていて、こちら側で指定するオプションはありません。

往復させても元の構造には戻らない

いったん Parquet に変換したファイルを再び JSON に戻しても、列として平坦化する前の入れ子構造がそのまま復元されるわけではありません。列名のドット区切りは手がかりにはなりますが、自動で元の形に組み立て直す処理は行われません。

まとめて変換する場合

複数の JSON ファイルを一度に置いても、順番に処理されて ZIP にまとめて返ってきます。アップロードは発生しませんが、1 回にまとめられるのは 100 ファイルまでです。

行数の多いファイルほど処理に時間がかかりますが、実際の制約は端末の空きメモリーです。

JSON を Parquet に変換する手順

  1. お手元の JSON ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に Parquet を選びます。変換はブラウザーの中で行われ、ファイルはアップロードされません。
  3. できあがった Parquet ファイル をダウンロードします。

JSON と Parquet——何が変わるか

JSONとParquetの比較
JSONParquet
正式名称JavaScript Object NotationApache Parquet
拡張子.json.parquet
メディアタイプapplication/jsonapplication/vnd.apache.parquet
圧縮方式可逆 — 何も捨てない
最初の公開20012013
発行元Apache Software Foundation
仕様RFC 8259
ライセンスオープン標準オープン標準
現在の位置づけ現行現行
ブラウザで開けるかすべてのブラウザ対応なし
代わりに検討される形式XML, YAML, NDJSONCSV

結果を開く

Parquet を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。

開くプログラムが重なりません。JSON はVisual Studio Code、jq、Postmanで、Parquet はpandas、Apache Spark、DuckDBで開きます。結果を渡す相手には後者のどれかが要ります。

どちらの形式が何のためのものか

JSON は 2001 年に登場しました。 RFC 8259 で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。

Parquet は Apache Software Foundation の形式で、2013 年から使われています。pandas、Apache Spark、DuckDBがこの形式を読めます。

JSON から Parquet:よくある質問

JSON ファイル はどこかにアップロードされますか。

いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。

JSON から Parquet への変換は無料ですか。

はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。

JSON を Parquet に変換すると品質は落ちますか。

JSON と Parquet は、内容の表し方が根本から違います。ですからこの変換は複製ではなく再構築です。誠実ではありますが、1 バイトも同じというわけではありません。 入れ子のオブジェクトは平らにされて列になります。深く入れ子になったデータは形を失います。

Parquet ファイル はブラウザーで開けますか。

Parquet を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。

これらのフォーマットについて