在pandas中访问存储在s3上的HDF文件

fod*_*ma1 6 python django hdf5 amazon-s3 pandas

我在S3上存储以HDF格式转储的pandas数据帧.我几乎卡住了,因为我无法传递文件指针,URL,s3 URL或StringIO对象read_hdf.如果我理解正确,文件必须存在于文件系统中.

资料来源:https://github.com/pydata/pandas/blob/master/pandas/io/pytables.py#L315

看起来它是针对CSV实现的,而不是针对HDF实现的.有没有更好的方法来打开这些HDF文件而不是将它们复制到文件系统?

为了记录,这些HDF文件正在Web服务器上处理,这就是我不想要本地副本的原因.

如果我需要坚持使用本地文件:有没有办法在文件系统上模拟该文件(使用真实路径),在读取完成后可以将其销毁?

我正在使用Python 2.7和Django 1.9以及pandas 0.18.1.

小智 3

较新版本的 python 允许直接从 S3 读取 hdf5,如read_hdf文档中所述。如果可以的话,也许你应该升级 pandas。当然,这假设您已经设置了读取这些文件的正确访问权限:使用文件credentials或公共 ACL。

关于您最后的评论,我不确定为什么每个 df 存储多个 HDF5 必然与 HDF5 的使用相反。Pickle 应该比 HDF5 慢得多,尽管joblib.dump可能会对此进行部分改进。