12

Azure blob として保存されている多数の大きな csv (タブ区切り) データがあり、これらから 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 データの pandas データフレーム) に到達できます。 -ClientLibrary-Pythonを使用してデータセットに pandas データフレームとしてアクセスしますが、ブロブ ストレージの場所から直接読み取ることをお勧めします。

4

5 に答える 5

17

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))
于 2015-10-12T23:38:59.743 に答える