[英]read hdf file from google cloud storage using pandas
問候編碼員和谷歌雲開發人員和專業人士。 我正在嘗試使用 pandas 提供的內置方法“pd.read_hdf()”從谷歌雲存儲中讀取 hdf 文件列表,其中文件名是這樣的(“client1.h”)。 我的問題是我總是得到這個錯誤:
NotImplementedError: Support for generic buffers has not been implemented.
在不同的論壇和網站深入搜索后,我意識到許多人遇到了同樣的問題,但沒有提供解決方案。
我使用的代碼如下:
from google.cloud.storage import blob, bucket
import pandas as pd
from google.cloud import storage
storage_client = storage.Client.from_service_account_json('file___.json')
bucket = storage_client.get_bucket('my_bucket_name')
blob = bucket.blob("data1.h")
df = pd.read_hdf(blob, mode='r+')
print(df)
我也嘗試了下面的代碼,我得到了同樣的錯誤:
blob = bucket.blob("data1.h")
data = download_as_string() #as_bytes as_text
df = pd.read_hdf(io.BytesIO(data), mode='r+')
當我將文件下載到我的本地環境並使用它的路徑讀取它時,它運行良好並且沒有問題,但不幸的是,在雲存儲中我有大量文件,所以我無法下載所有文件來使用。
,.! 請 !! 任何人有解決方案或建議,我請他分享。
該功能似乎尚未實現。
正如您所提到的,首先將文件下載到本地文件系統將讓您使用read_hdf()
。 這是一個可行的解決方法。
要使read_hdf()
工作,需要傳遞os.path.exists(path_or_buf)
將導致 True 的字符串。 您可能希望幫助 pandas 開發人員實現該功能。 如果是這種情況, 請在此處查看當前實現。
您正在通過的問題已經在 pandas GitHub 存儲庫的問題部分中打開,但是用戶只提到問題發生在 S3 中的數據上(請參閱此處)。 您可能想在該問題中分享您的問題或打開一個新問題。 要打開新問題,請在此處 go 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.