У меня есть DataFrame pandas, который я хочу часто запрашивать (в Ray через API). Я пытаюсь ускорить его загрузку, но требуется значительное время (3+ с), чтобы передать его в панд. Для большинства моих наборов данных это быстро, а вот этот - нет. Я предполагаю, что это потому, что 90% из них - струны.
[742461 rows x 248 columns]
Это примерно 137 МБ на диске. Чтобы исключить фактор скорости диска, я поместил файл .parq в точку монтирования tmpfs.
Сейчас попробовал:
- Чтение паркета с помощью pyArrow Parquet (read_table), а затем преобразование его в pandas (чтение в таблицу выполняется немедленно, но использование to_pandas занимает 3 секунды)
- Играя практически со всеми настройками to_pandas, которые я могу придумать в pyarrow / parquet
- Чтение с помощью pd.from_parquet
- Чтение его из хранилища памяти Plasma (https://arrow.apache.org/docs/python/plasma.html) и преобразование в панды. Опять же, чтение происходит немедленно, но to_pandas требует времени.
- Преобразование всех строк в категории
У кого-нибудь есть хорошие советы о том, как ускорить преобразование панд при работе со строками? Ядров и баранов предостаточно.
Моим конечным результатом должен быть DataFrame pandas, поэтому я не привязан к формату файла parquet, хотя обычно он мой любимый.
С уважением, Никлас