以前、parquet-cli のことを書いたけど、今回は DuckDB なんだ。
DuckDB はこれね
インストール
brew install duckdb
でOK
parquet ファイルを Load して編集して、Export する流れ
$ duckdb
でコマンドラインを起動
ちなみに、select するだけなら、以下でOK
select * from '/path/to/foobar.parquet'
update とかしたいのであれば、table 化する必要がある
1. テーブル化
CREATE TABLE tmp_t AS SELECT * FROM read_parquet('/path/to/foobar.parquet');
2. 作成したテーブルに対して Update
update tmp_t set value = 'small' where id < 100;
みたいな感じ
3. parquetファイルとして export
tmp_t に反映されているので、これを parquet ファイルとして書き出せばよい
$ COPY (SELECT * FROM tmp_t) TO '/path/to/foobar2.parquet' (FORMAT PARQUET);
その他便利なこと
DESCRIBE TABLE
DESCRIBE TABLE '/path/to/foobar.parquet'
SELECT 結果の csv 出力
COPY (select * from tmp_t) TO 'output.csv' (HEADER, DELIMITER ',');
まぁ、マニュアルみれば全部書いてるけどね。
オブジェクトストレージに直接アクセスできるのとか優秀すぎ