apache / apache/arrow

Conversion from one dataset to another that will not fit in memory?

オープン
#12,653 コメント 6 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
17.1k
フォーク
4.3k
平均マージ
3日 20時間
マージ済み PR(30日)
94

説明

Having found the following description in the documentation, I tried the operation of scanning a dataset larger than memory and writing it to another dataset.

https://arrow.apache.org/docs/python/dataset.html#writing-large-amounts-of-data

> The above examples wrote data from a table. If you are writing a large amount of data you may not be able to load everything into a single in-memory table. Fortunately, the write_dataset() method also accepts an iterable of record batches. This makes it really simple, for example, to repartition a large dataset without loading the entire dataset into memory:

```python
import pyarrow.dataset as ds

input_dataset = ds.dataset("input")
ds.write_dataset(inpute_dataset.scanner(), "output", format="parquet")
```

```r
arrow::open_dataset("input") |>
arrow::write_dataset("output")
```

But both Python and R on Windows crashed due to lack of memory. Am I missing something?
Is there a recommended way to convert one dataset to another without running out of computer memory?

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Python のデータセットドキュメントにある大量のデータの書き込みに関するセクションから始め、Windows で scanner-to-write_dataset の例を再現します。R の open_dataset |> write_dataset の例と比較してください。文書化されているどちらかの変換が、メモリより大きい入力に対してクラッシュするかを確認し、文書化された操作がメモリを使い果たさずに完了するか、制限が明確に文書化されていれば、issue は完了したものとします。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python, r
領域
data-engineering
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。