gpt4 book ai didi

python - 将 pandas df 转换为 parquet-file-bytes-object

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:21 26 4
gpt4 key购买 nike

我有一个 pandas 数据框,想要将其作为 parquet 文件写入 Azure 文件存储。

到目前为止,我还无法将数据帧直接转换为字节,然后将其上传到 Azure。我当前的解决方法是将其作为 parquet 文件保存到本地驱动器,然后将其作为字节对象读取,我可以将其上传到 Azure。

谁能告诉我如何将 pandas 数据帧直接转换为“ Parquet 文件”字节对象而不将其写入磁盘? I/O 操作确实减慢了速度,而且感觉很像非常丑陋的代码......

# Transform the data_frame into a parquet file on the local drive    
data_frame.to_parquet('temp_p.parquet', engine='auto', compression='snappy')

# Read the parquet file as bytes.
with open("temp_p.parquet", mode='rb') as f:
fileContent = f.read()

# Upload the bytes object to Azure
service.create_file_from_bytes(share_name, file_path, file_name, fileContent, index=0, count=len(fileContent))

我正在寻找实现这样的东西,其中transform_functionity返回一个字节对象:

my_bytes = data_frame.transform_functionality()
service.create_file_from_bytes(share_name, file_path, file_name, my_bytes, index=0, count=len(my_bytes))

最佳答案

我找到了一个解决方案,我会将其发布在这里,以防有人需要执行相同的任务。使用 to_parquet 文件将其写入缓冲区后,我使用 .getvalue() 功能从缓冲区中获取字节对象,如下所示:

buffer = BytesIO()
data_frame.to_parquet(buffer, engine='auto', compression='snappy')

service.create_file_from_bytes(share_name, file_path, file_name, buffer.getvalue(), index=0, count=buffer.getbuffer().nbytes )

关于python - 将 pandas df 转换为 parquet-file-bytes-object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54211745/

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