微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 python 数据帧加载数据到 Azure Blob

如何解决从 python 数据帧加载数据到 Azure Blob

我正在尝试将数据从 python 数据帧上传到 Azure Blob。

我一直在使用它从 Azure Blob 下载数据,它有效:

from azure.storage.blob import BlobServiceClient,BlobClient,ContainerClient
import pandas as pd
from pandas import DataFrame as df
from io import StringIO
blob_service_client = 
BlobServiceClient.from_connection_string(os.environ["blob_conn_string"])
blob_client = blob_service_client.get_blob_client(blob_container,file_name)
Localfile = blob_client.download_blob().content_as_text()
        
df_data = pd.read_csv(StringIO(Localfile))

我想将 df_data 加载回 Azure blob 容器。 我尝试了以下代码

blob_client.upload_blob(df_data)

谁能建议我做错了什么?

解决方法

这是我为解决这个问题所做的:

def blob_conn(df,blob_name):
    blob_service_client = BlobServiceClient.from_connection_string(os.environ["blob_conn_str"])
    blob_client = blob_service_client.get_blob_client(container=os.environ["container"],blob=blob_name)
    blob_client.upload_blob(df,overwrite = True)

我使用数据框和 blob_name 作为位置将“df”作为 csv 文件传递​​。

,

正如 flow_me_over 在评论中所说,blob_client.upload_blob(df_data) 是不可能的。

upload_blob() 中允许的类型应该是 Union[Iterable[AnyStr],IO[AnyStr]],但 df_data 的类型是 TextFileReader

以下代码可以正常工作:

blob_client2.upload_blob(Localfile)

blob_client2.upload_blob(data=df_data.to_csv(index=False))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。