python - 在 azure ml 中运行笔记本时,如何最好地将 azure blob csv 格式转换为 pandas dataframe

标签 python azure pandas azure-blob-storage azure-machine-learning-service

我有许多大型 csv(制表符分隔)数据存储为 azure blob,我想从这些数据创建一个 pandas 数据框。我可以在本地执行此操作,如下所示:

from azure.storage.blob import BlobService
import pandas as pd
import os.path

STORAGEACCOUNTNAME= 'account_name'
STORAGEACCOUNTKEY= "key"
LOCALFILENAME= 'path/to.csv'        
CONTAINERNAME= 'container_name'
BLOBNAME= 'bloby_data/000000_0'

blob_service = BlobService(account_name=STORAGEACCOUNTNAME, account_key=STORAGEACCOUNTKEY)

# Only get a local copy if haven't already got it
if not os.path.isfile(LOCALFILENAME):
    blob_service.get_blob_to_path(CONTAINERNAME,BLOBNAME,LOCALFILENAME)

df_customer = pd.read_csv(LOCALFILENAME, sep='\t')

但是,当在 azure ML 笔记本上运行笔记本时,我无法“保存本地副本”然后从 csv 读取,因此我想直接进行转换(类似于 pd.read_azure_blob(blob_csv)或者只是 pd.read_csv(blob_csv) 是理想的选择)。

如果我首先创建一个 azure ML 工作区,然后将数据集读入其中,最后使用 https://github.com/Azure/Azure-MachineLearning-ClientLibrary-Python,我可以获得所需的最终结果(blob csv 数据的 pandas 数据框)。以 pandas 数据帧的形式访问数据集,但我更愿意直接从 blob 存储位置读取。

最佳答案

接受的答案在最新的 Azure 存储 SDK 中不起作用。 MS完全重写了SDK。如果您使用旧版本并更新它,这有点烦人。下面的代码应该可以在新版本中运行。

from azure.storage.blob import ContainerClient
from io import StringIO
import pandas as pd

conn_str = ""
container_name = ""
blob_name = ""

# Create a ContainerClient instance via connection string auth.
container_client = ContainerClient.from_connection_string(conn_str, container_name)
# Download blob as StorageStreamDownloader object (stored in memory)
downloaded_blob = container_client.download_blob(blob_name, encoding='utf8')

df = pd.read_csv(StringIO(downloaded_blob.readall()), low_memory=False)

关于python - 在 azure ml 中运行笔记本时,如何最好地将 azure blob csv 格式转换为 pandas dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091830/

相关文章:

python - 每个深度的二叉树遍历总和

python - Azure Functions - BlobTrigger - 如何使用容器中的任何文件触发函数?

Python 的逻辑运算符 AND

python - scipy odeint 结果取决于输入时间数组

azure - 概述使用哪种 Azure 个人访问 token 的时间和频率?

javascript - 在 HTTP 触发器 azure 中等待 Newman 响应

python - 添加一列作为具有条件的其他列的总和

python - 计算 pandas 中的 Tf-Idf 分数?

python-3.x - 使用 pandas dataframe 列值来透视其他列

python - Python 中的 Dialogflow API 访问后续意图