Parquet を NDJSON に変換

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

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 可逆 何も捨てられません。NDJSONはParquetが持っていたものをそのまま保持します。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。

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

分析基盤のデータを行ごとに確認したいときに

データ分析基盤で使われる Parquet は、そのままでは中身を目で確認しにくいバイナリ形式です。この変換は Parquet の各行を 1 行 1 JSON の NDJSON に変え、ログ処理ツールやテキストエディタで内容を確認できるようにします。

値の型は読みやすい形に変換される

整数のうち 2 の 53 乗を超える大きな値は、数値としてではなく文字列として書き出されます。JavaScript の数値がその範囲を正確に表現できないための処置です。日付の列は ISO 形式の文字列に、バイナリの列は小文字の 16 進数文字列に変換されます。

入れ子構造を持つ列があれば、その値は JSON のテキストとしてそのまま文字列の中に埋め込まれます。

元のスキーマは復元されない

Parquet が JSON から書き出されたものであれば、書き込みの時点ですでに型は真偽値・整数・浮動小数点数・文字列の 4 種類に絞られ、列によっては 1 つの値のために列全体が文字列に丸められていることもあります。

この変換はその Parquet が持っている型情報をそのまま読み取るだけなので、Parquet を作る前の元の JSON が持っていた細かい型の違いを取り戻すことはできません。JSON から Parquet、また NDJSON へと往復させても、最初の状態には戻りません。

1 行が 1 つの完結した JSON になる

書き出された NDJSON の各行は、それ単独で有効な JSON です。ファイル全体を一度に読み込まなくても、1 行ずつ順番に処理できるという NDJSON の利点がそのまま活かされます。

圧縮方式は変換の対象ではない

元の Parquet がどの圧縮アルゴリズムで書かれていても、この変換はその違いを気にせず読み込みます。読み込みに失敗するのは、ファイルが破損しているか、対応していない特殊な構造を使っている場合に限られます。

まとめて変換する場合

複数の Parquet ファイルを一度に置いても、順番に処理されて ZIP にまとめて返ってきます。アップロードは発生しませんが、1 回にまとめられるのは 100 ファイルまでです。行数の多いファイルほど処理に時間がかかりますが、実際の制約は端末の空きメモリーです。

Parquet を NDJSON に変換する手順

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

Parquet と NDJSON——何が変わるか

ParquetとNDJSONの比較
ParquetNDJSON
正式名称Apache ParquetNewline-Delimited JSON
拡張子.parquet.ndjson, .jsonl
メディアタイプapplication/vnd.apache.parquetapplication/x-ndjson
圧縮方式可逆 — 何も捨てない
最初の公開20132013
発行元Apache Software Foundation
ライセンスオープン標準オープン標準
現在の位置づけ現行現行
ブラウザで開けるか対応なし対応なし
代わりに検討される形式CSV, JSONJSON, CSV

残るもの

失われるものはありません。Parquet も NDJSON も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。

変換先の形式が追加で扱えるもの

NDJSON は作業のための形式で、Parquet は完成したものを渡すための形式です。戻ってくるのはページの絵ではなく、編集できる文字です。たいていはそれがこの変換の理由であり、同時にこの変換の限界でもあります。

結果を開く

pandasは Parquet と NDJSON のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。

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

NDJSON は 2013 年から使われています。jqとpandasがこの形式を読めます。

Parquet から NDJSON:よくある質問

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

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

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

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

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

いいえ。NDJSON は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。

Parquet から NDJSON への変換は可逆ですか。

失われるものはありません。Parquet も NDJSON も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。

NDJSON ファイル はそのあと編集できますか。

NDJSON は作業のための形式で、Parquet は完成したものを渡すための形式です。戻ってくるのはページの絵ではなく、編集できる文字です。たいていはそれがこの変換の理由であり、同時にこの変換の限界でもあります。

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