如何解决使用pandas从谷歌云存储读取hdf文件
问候编码人员和 Google 云开发人员和专业人士。 我正在尝试使用 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 开发人员实现该功能。如果是这样,see the current implementation here。
您遇到的问题已经在 pandas GitHub 存储库的问题部分打开,但是用户只提到问题发生在 S3 (see here) 中的数据。您可能想在该问题中分享您的问题或也打开一个新问题。要打开新问题,请go here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。