У меня есть несколько файлов .parquet, каждый из которых имеет форму (1126399, 503)
и размер 13 МБ.Насколько я знаю и из того, что я прочитал, это может быть легко обработано на локальной машине.Я пытаюсь поместить их в информационный фрейм pandas для проведения некоторого анализа, но у меня возникают проблемы с этим.Сохранение их в файл CSV обходится слишком дорого, так как файлы становятся очень большими, а загрузка их непосредственно в несколько кадров данных и последующая конкатенация приводит к ошибкам памяти.Я никогда не работал с файлами .parquet и не уверен, каков наилучший путь вперед или как использовать файлы для фактического анализа данных.
Сначала я попытался:
import pandas as pd
import pyarrow.parquet as pq
# This is repeated for all files
p0 = pq.read_table('part0.parquet') # each part increases python's memory usage by ~14%
df0 = part0.to_pandas() # each frame increases python's memory usage by additional ~14%
# Concatenate all dataframes together
df = pd.concat([df0, df1, df2, df3, df4, df6, df7], ignore_index=True)
Это заставило меня исчерпать память.Я работаю в системе с 12 ядрами и 32 ГБ памяти.Я подумал, что буду более эффективным, и попытался перебирать и удалять файлы, которые больше не нужны:
import pandas as pd
# Loop through files and load into a dataframe
df = pd.read_parquet('part0.parquet', engine='pyarrow')
files = ['part1.parquet', 'part2.parquet', 'part3.parquet'] # in total there are 6 files
for file in files:
data = pd.read_parque(file)
df = df.append(data, ignore_index=True)
del data
К сожалению, ни один из них не сработал.Любая помощь очень ценится.