1743371083
2025-03-30 20:21:00
この最近の投稿で私が使用しました 極 そして duckdb 大きなCSVファイルをParquetに変換し、SteamモードとPythonに変換します。
さまざまな人が私に連絡して、「そしてRで?」と尋ねました。
簡単な回答:DuckDBがあり、異なるPolarsリンクがあります。ここでは、現在{neopandas}で改訂されている{polars}を使用します。
待ってはいけません!


回転時間は、Intel I7-13700Hプロセッサを備えたWindowsシステムにあります。
2.2 GBのCSVファイルを生成します
{data.table}を使用して、CSVファイルに100行のランダムに生成されたデータセットをスローします。
ライブラリ(data.table)set.seed(1)n
duckdb
次に、duckdbを使用してファイルにクエリを描画し、結果を寄木物に送信します。
ワイヤーとRAMは飛行中に設定できますが、これは非常に便利です。低いメモリ制限(たとえば、500 MB)を設定すると機能します – 試してみてください!
3.5秒-UAU!結果のファイルは良さそうです。 125 MBです。
極
ポーラーで同じことをしましょう。
#sys.setenv(not_cran = “true”)#install.packages( “polars”、repos = “https://community.r-multiverse.org”)library(polars)polars_info()system.time(#9s(pl $ scan_csv( “data.csv”)$ filter( “x) $ sort( “y”)$ sink_parquet( “data.parquet”、row_group_size = 1e5))) ┆i64│#╞═══════════╪═════╡##│5.3551e-9┆4│#│9.0804e-9┆5│#│2.2585e-8┆2│##│3.4459E-8
9秒で、duckdbよりも遅いです。しかし、出口は予想どおりに見え、DuckDBの場合と同じサイズです。
最後の言葉
- DuckDBまたはPolarsを使用すると、RAMよりも大きな状況であっても、CSVの寄木細工への変換は簡単で高速です。
- 飛行中にフィルター、選択、ソートなどを適用できます。
- Rのポーラーを見てみましょう。とても面白いようです。
Rスクリプト
#rを使用した大型CSVの任意への任意に変換