ビットの海

ゆるふわソフトウェアエンジニアしゃぜのブログ

DuckDB cli で parquet ファイルを編集しよう

shase428.hatenablog.jp

以前、parquet-cli のことを書いたけど、今回は DuckDB なんだ。

DuckDB はこれね

duckdb.org

インストール

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 ',');

まぁ、マニュアルみれば全部書いてるけどね。

duckdb.org

オブジェクトストレージに直接アクセスできるのとか優秀すぎ

duckdb.org