Ren*_*Pen 2 python pandas parquet pyarrow
有几种方法可以将熊猫转换为镶木地板。例如 pyarrow.Table.from_pandas 或 dataframe.to_parquet 。它们的共同点是,它们将 df.parquet 应存储的文件路径作为参数获取。
我需要将写入的镶木地板文件的内容放入一个变量中,但还没有看到这一点。主要是我想要与 pandas.to_csv 相同的行为,如果没有提供路径,它将结果作为字符串返回。
当然,我可以只写文件并使用标准的文件读取操作从 python 中读取到字符串中。由于我正在写入大量数据,这会在文件系统上产生大量负载......
您可以为此使用 io.BytesIO,或者 Apache Arrow 也提供其本机实现 BufferOutputStream。这样做的好处是,它可以在没有通过 Python 的开销的情况下写入流。因此,制作更少的副本并释放 GIL。
import pyarrow as pa
import pyarrow.parquet as pq
df = some pandas.DataFrame
table = pa.Table.from_pandas(df)
buf = pa.BufferOutputStream()
pq.write_table(table, buf)
# buf now contains the Parquet file in memory.
Run Code Online (Sandbox Code Playgroud)