Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Чтение части набора данных, хранящегося в HDF5 - python 2.7

Автор вопроса: Martin Petri BaggerОтветов: 1

У меня есть довольно большой файл 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.

/Мартин

pythondataframesplitdatasethdf5

Ответы

Ответ 1 · fscore

Ваша проблема выглядит как алгоритм уменьшения карты. Поскольку у вас есть огромный набор данных, вы должны преобразовать свои данные в алгоритм уменьшения карты, который выводит пары ключ-значение данных, которые вас интересуют, в кластере Hadoop. Таким образом, вы можете обрабатывать большое количество данных. Проверьте эту ссылку для справки:

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

Hadoop также использует HDFS, так что это может вам помочь. Mapper манипулирует только теми данными, которые вас интересуют, и выводит ключ, значение, а редуктор выполняет некоторую агрегацию.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы