gpt4 book ai didi

python - 如何使用python将pandas数据帧数据存储到azure blob?

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:28 24 4
gpt4 key购买 nike

我想将 pandas dataframe 中处理后的数据以 parquet 文件格式存储到 azure blob。但在上传到 blob 之前,我必须将其作为 parquet 文件存储在本地磁盘中,然后上传。我想将pyarrow.table写入pyarrow.parquet.NativeFile并直接上传。谁能帮我这个。下面的代码工作正常:

import pyarrow as pa
import pyarrow.parquet as pq

battery_pq = pd.read_csv('test.csv')
######## 一些数据处理
battery_pq = pa.Table.from_pandas(battery_pq)
pq.write_table(battery_pq,'example.parquet')
block_blob_service.create_blob_from_path(container_name,'example.parquet','example.parquet')

需要在内存中创建文件(I/O文件类型对象),然后上传到blob。

最佳答案

您可以使用io.BytesIO为此,Apache Arrow 还提供了其 native 实现 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)
block_blob_service.create_blob_from_bytes(
container,
"example.parquet",
buf.getvalue().to_pybytes()
)

关于python - 如何使用python将pandas数据帧数据存储到azure blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com