![](/img/trans.png)
[英]Saving pandas dataframe variable to csv from google compute engine to google storage bucket without saving to disk first
[英]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.