簡體   English   中英

將存儲為 Azure Blob 的 CSV 直接加載到 Pandas 數據幀中,而無需先保存到磁盤

[英]Load CSV stored as an Azure Blob directly into a Pandas data frame without saving to disk first

The article Explore data in Azure blob storage with pandas ( here ) shows how to load data from an Azure Blob Store into a Pandas data frame.

他們首先下載 blob 並將其作為 CSV 文件在本地存儲,然后將該 CSV 文件加載到數據幀中。

import pandas as pd
from azure.storage.blob import BlockBlobService

blob_service = BlockBlobService(account_name=STORAGEACCOUNTNAME, account_key=STORAGEACCOUNTKEY)
blob_service.get_blob_to_path(CONTAINERNAME, BLOBNAME, LOCALFILENAME)
dataframe_blobdata = pd.read_csv(LOCALFILE)

有沒有辦法將 blob 直接拉入數據幀而不先將其保存到本地磁盤?

你可以嘗試這樣的事情(使用StringIO ):

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

blob_service = BlockBlobService(account_name=STORAGEACCOUNTNAME, account_key=STORAGEACCOUNTKEY)
blob_string = blob_service.get_blob_to_text(CONTAINERNAME, BLOBNAME)
dataframe_blobdata = pd.read_csv(StringIO(blobstring))

請注意,該文件將存儲在內存中,這意味着如果它是一個大文件,則可能會導致MemoryError (也許您可以嘗試del blob_string以便在您獲得 dataframe、idk 中的數據后釋放 memory)。

我對 Azure DataLake Storage Gen2(它使用 Azure Blob Storage)或多或少做了同樣的事情。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM