我正在尝试使用python从blob存储读取多个CSV文件。
我使用的代码是:
blob_service_client = BlobServiceClient.from_connection_string(connection_str)
container_client = blob_service_client.get_container_client(container)
blobs_list = container_client.list_blobs(folder_root)
for blob in blobs_list:
blob_client = blob_service_client.get_blob_client(container=container, blob="blob.name")
stream = blob_client.download_blob().content_as_text()
我不知道什么是正确的方式来存储在Pandas Dataframe 中读取的CSV文件。
我尝试用途:
df = df.append(pd.read_csv(StringIO(stream)))
但这显示了一个错误。
你知道我该怎么做吗?
6条答案
按热度按时间j91ykkif1#
您可以从blob存储中下载文件,然后将数据从下载的文件读入PandasDataFrame。
有关详细信息,请参见here。
如果你想直接转换,代码会很有用,你需要从blob对象中获取内容,在
get_blob_to_text
中不需要本地文件名。yftpprvb2#
通过右键单击要导入的Azure门户的blob文件并选择生成SAS,可以找到Blob SAS URL。然后,单击生成SAS令牌和URL按钮并将SAS URL复制到上述代码中,以替换blob_sas_url。
owfi6suc3#
BlockBlobService作为azure-storage的一部分已弃用。请改用以下服务:
LOCALFILENAME与BLOBNAME相同
agyaoht74#
现在你可以直接从BlobStorage读取数据到Pandas DataFrame中:
其中
blob_path
是文件的路径,指定为{container-name}/{blob-preifx.csv}
lyfkaqu15#
BlockBlobService确实被弃用了。但是,@Deepak的答案对我不起作用。下面的答案有效:
ldxq2e6h6#
您可以使用blob_client将文件作为文本读取,并将该文本用作panda
read_csv()
方法的输入。