Как загрузить большие многофайловые файлы паркета для tenorflow / pytorch - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь загрузить несколько файлов паркета из каталога в Python для тензорного потока / pytorch.

Файлы слишком велики для загрузки через функции pyarrow.parquet

import pyarrow.parquet as pq
dataset = pq.ParquetDataset('dir')
table = dataset.read()

Это дает out of memory error.

Я также пытался использовать petastorm, но это не работает для make_reader(), потому что он не относится к типу petastorm.

with make_batch_reader('dir') as reader:
  dataset = make_petastorm_dataset(reader)

Когда я использовал make_batch_reader(), а затем make_petastorm_dataset(reader), он снова дал zip not iterable error или что-то в этом роде.

Я не уверен, как загрузить файл в Python для обучения ML. Немного быстрой помощи будет принята с благодарностью.

Спасибо, За sh

1 Ответ

0 голосов
/ 27 марта 2020

Для pyarrow вы можете перечислить каталог с помощью Python, выполнить итерацию по *.parquet файлам, открыть каждый файл как pq.ParquetFile и прочитать его по одной группе строк за раз . Это уменьшит нагрузку на память, но не будет очень быстрым без распараллеливания.

Для petastorm вы вправе использовать make_batch_reader(). Действительно, сообщения об ошибках не всегда полезны; но вы можете проверить трассировку стека и выяснить, откуда в коде Petastorm он происходит.

...