将Pandas数据帧从/转换为ORC文件



是否可以将Pandas数据帧从/转换为ORC文件?我可以转换镶木地板文件中的df,但库似乎不支持ORC。Python中有可用的解决方案吗?如果没有,最好的策略是什么?一种选择是使用外部工具将镶木地板文件转换为ORC,但我不知道在哪里可以找到它。

此答案使用pyarrow==4.0.1pandas==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')

编写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编写器。

为了补充上述答案,Pandas v1.5.0本机支持写入ORC文件。当它发布时,我会用更多的文档来更新它。

my_df.to_orc('myfile.orc')

  • https://pandas.pydata.org/pandas-docs/version/1.5/whatsnew/v1.5.0.html#writing-到orc文件

  • https://github.com/pandas-dev/pandas/pull/44554

我最近使用了pyarrow,它支持ORC,尽管我看到了一些没有加载pyarrow.org模块的问题。

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()

相关内容

  • 没有找到相关文章

最新更新