Можно ли преобразовать кадр данных Pandas из/в файл ORC? Я могу преобразовать df в файл паркета, но библиотека, похоже, не поддерживает ORC. Есть ли доступное решение в Python? Если нет, то какая может быть лучшая стратегия? Одним из вариантов может быть преобразование файла паркета в ORC с помощью внешнего инструмента, но я понятия не имею, где его найти.
Конвертировать кадр данных Pandas из/в файл ORC
comment
Вы используете Hive или Spark (или оба)? Гораздо проще делать то, что вы пытаетесь сделать, если у вас есть один из них без ошибок. В частности, я настоятельно рекомендую вам использовать Hive для управления файлами ORC. Вы можете подключиться к нему в python, используя пакеты pyodbc или pyhive.
- person Habardeen   schedule 04.12.2019
comment
@alcor Я только что закончил адаптер ORC на C++ и Python, так что теперь можно писать файлы ORC, если вы используете мою вилку: github.com/mathyingzhou/arrow.
- person Ying Zhou   schedule 10.01.2021
Ответы (2)
Этот ответ проверен с помощью pyarrow==4.0.1
и pandas==1.2.5
.
Сначала он создает таблицу pyarrow, используя pyarrow.Table.from_pandas
а>. Затем он записывает файл orc, используя pyarrow.orc.ORCFile
.
Read orc
import pandas as pd
import pyarrow.orc # This prevents: AttributeError: module 'pyarrow' has no attribute 'orc'
df = pd.read_orc('/tmp/your_df.orc')
Write orc
import pandas as pd
import pyarrow as pa
import pyarrow.orc as orc
# Here prepare your pandas df.
table = pa.Table.from_pandas(df, preserve_index=False)
orc.write_table(table, '/tmp/your_df.orc')
На pandas==1.3.0
еще нет автора pd.to_orc
.
person
Acumenus
schedule
16.07.2021
Недавно я использовал pyarrow с поддержкой ORC, хотя я видел несколько проблем, когда модуль pyarrow.orc не загружался.
pip install pyarrow
использовать:
import pandas as pd
import pyarrow.orc as orc
with open(filename) as file:
data = orc.ORCFile(file)
df = data.read().to_pandas()
person
PHY6
schedule
15.11.2019