apache / apache/arrow

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

Ouverte
#12,653 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C++
Étoiles
17.1k
Forks
4.3k
Merge moyen
3 j 18 h
PR mergées (30 j)
91

Description

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?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par la section de la documentation de Python consacrée à l’écriture de grandes quantités de données et reproduisez l’exemple scanner-to-write_dataset sous Windows ; comparez-le à l’exemple R open_dataset |> write_dataset. Vérifiez si l’une ou l’autre des conversions documentées échoue pour une entrée plus grande que la mémoire disponible, et considérez l’issue comme terminée lorsque l’opération documentée s’achève sans épuiser la mémoire ou que la limitation est clairement documentée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python, r
Domaine
data-engineering
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.