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

发布于 2021-01-29 17:32:27

我有大量的大型csv(制表符分隔)数据存储为天蓝色的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,则可以达到所需的最终结果(用于blob csv数据的熊猫数据框)-ClientLibrary-
Python
以pandas数据框的形式访问数据集,但是我更喜欢直接从blob存储位置读取。

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我想你想使用get_blob_to_bytesor get_blob_to_text; 这些应该输出一个字符串,您可以使用它来创建一个数据框

    from io import StringIO
    blobstring = blob_service.get_blob_to_text(CONTAINERNAME,BLOBNAME)
    df = pd.read_csv(StringIO(blobstring))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看