是否可以将Pandas数据框从/转换为ORC文件?我可以将df转换为parquet文件,但是该库似乎没有ORC支持。在Python中是否有可用的解决方案?如果没有,最佳策略是什么?一种选择可能是使用外部工具将parquet文件转换为ORC,但我不知道在哪里找到它。
是否可以将Pandas数据框从/转换为ORC文件?我可以将df转换为parquet文件,但是该库似乎没有ORC支持。在Python中是否有可用的解决方案?如果没有,最佳策略是什么?一种选择可能是使用外部工具将parquet文件转换为ORC,但我不知道在哪里找到它。
本答案经过测试使用的是 pyarrow==4.0.1
和 pandas==1.2.5
。
它首先使用pyarrow.Table.from_pandas
创建了一个 pyarrow 表。然后使用pyarrow.orc.ORCFile
将 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')
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
的写入器。
my_df.to_orc('myfile.orc')
相关链接:
我最近使用了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()