Утечка памяти из пиарроу? - PullRequest
0 голосов
/ 27 октября 2018

Для разбора файла большего размера мне нужно последовательно записывать большое количество файлов паркета. Однако, похоже, что память, используемая для выполнения этой задачи, увеличивается с каждой итерацией, тогда как я ожидаю, что она останется постоянной (поскольку в память ничего не следует добавлять). Это усложняет масштабирование.

Я добавил минимально воспроизводимый пример, который создает 10 000 паркетов, и к нему добавляется цикл.

import resource
import random
import string
import pyarrow as pa
import pyarrow.parquet as pq
import pandas as pd


def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))

schema = pa.schema([
                        pa.field('test', pa.string()),
                    ])

resource.setrlimit(resource.RLIMIT_NOFILE, (1000000, 1000000))
number_files = 10000
number_rows_increment = 1000
number_iterations = 100

writers = [pq.ParquetWriter('test_'+id_generator()+'.parquet', schema) for i in range(number_files)]

for i in range(number_iterations):
    for writer in writers:
        table_to_write = pa.Table.from_pandas(
                            pd.DataFrame({'test': [id_generator() for i in range(number_rows_increment)]}),
                            preserve_index=False,
                            schema = schema,
                            nthreads = 1)
        table_to_write = table_to_write.replace_schema_metadata(None)
        writer.write_table(table_to_write)
    print(i)

for writer in writers:
    writer.close()

Кто-нибудь знает, что является причиной этой утечки и как ее предотвратить?

1 Ответ

0 голосов
/ 27 октября 2018

Мы не уверены, что не так, но некоторые другие пользователи сообщили о еще не диагностированных утечках памяти. Я добавил ваш пример в одну из проблем отслеживания JIRA https://issues.apache.org/jira/browse/ARROW-3324

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...