Чтобы записать данные из кадра данных pandas в паркет, я делаю следующее:
df = pd.DataFrame(DATA)
table = pa.Table.from_pandas(df)
pq.write_table(table, 'DATA.parquet')
Однако, это не очень хорошо работает, если у меня есть, скажем, строки 1B, и оно не помещается в памяти.В таком случае, как бы я записал данные постепенно.Например, что-то вроде:
DATA = []
BACTCH_SIZE = 10000
with open('largefile.csv') as f:
for num, line in enumerate(f):
if (len(DATA) == BATCH_SIZE):
pq.write_table(pa.Table.from_pandas(pd.DataFrame(DATA)), 'DATA.parquet')
DATA = []
DATA.append(line.split(','))
if DATA: pq.write_table(pa.Table.from_pandas(pd.DataFrame(DATA)), 'DATA.parquet')
Тем не менее, я считаю, что вышеприведенное просто перезаписывает файл паркета.Как я могу сделать эквивалент добавления?