【问题标题】:Reading part of dataset stored i HDF5 - python 2.7读取存储在 HDF5 中的部分数据集 - python 2.7
【发布时间】:2013-12-18 02:02:39
【问题描述】:

我有一个相当大的 HDF5 文件,其中存储(除其他外)一个包含 150 名参与者的眼动追踪数据的大型时间序列数据集。

In [20]: f['data_collection/events/eyetracker/BinocularEyeSampleEvent/']
Out[21]: <HDF5 dataset "BinocularEyeSampleEvent": shape (8297323,), type "|V178">

我无法将所有这些都读入内存,因为它太大了,但是我如何才能读到其中的一部分呢?

我想做这样的事情 - 当时读取一个参与者(参与者的列名是“名称”),执行一些操作并保存到一个较小的数据框:

for name in f['data_collection/events/eyetracker/BinocularEyeSampleEvent/'][name]:
    df = f['data_collection/events/eyetracker/BinocularEyeSampleEvent/']
    ...
    ...

我该怎么做?我正在使用 h5py 读取 HDF5 文件。

/马丁

【问题讨论】:

    标签: python split dataset hdf5 dataframe


    【解决方案1】:

    您的问题看起来像 Map Reduce 算法。由于您拥有庞大的数据集,因此您应该将数据转换为 map reduce 算法,该算法在 hadoop 集群上输出您关心的数据的键值对。这样您就可以处理大量数据。检查此链接以获取帮助:

    http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/

    Hadoop 也使用 HDFS,因此它可能会对您有所帮助。 Mapper 只操作您关心的数据并输出键、值,reducer 进行一些聚合。

    【讨论】:

      猜你喜欢
      • 2014-01-22
      • 2017-07-27
      • 1970-01-01
      • 2013-05-05
      • 2014-02-26
      • 2016-10-27
      • 2021-04-24
      • 2020-10-01
      • 2019-03-04
      相关资源
      最近更新 更多