2014-08-22 3 views
0

У меня есть большой текстовый файл (в терабайт), каждая строка имеет метку времени и некоторые другие данные, например:Недостающие данные временных рядов в Hadoop

 
timestamp1,data 
timestamp2,data 
timestamp5,data 
timestamp7,data 
... 
timestampN,data 

Этот файл упорядочен по временной отметки, но там может быть промежутки между последовательными временными метками. Мне нужно заполнить эти пробелы и написать новый файл.

Можно ли это сделать на карте Hadoop Уменьшить? Причина для запроса этого вопроса, для интерполирования недостающих строк мне нужны и предыдущие, и следующие строки. Напр. Чтобы интерполировать timestamp6, мне нужны значения в timestamp5 и timestamp7. Итак, что, если, начиная с timestamp7, сидит в другом блоке данных, и в этом случае я вообще не смогу вычислить timestamp6.

Любой другой алгоритм/решение? Может быть, это невозможно сделать с помощью mapreduce? Можем ли мы сделать это в RHADOOP?

(решения Свиньи/Hive также действительны)

ответ

0

Хотя мое предложение немного утомительно и может повлиять на небольшую производительность битной также. Вы можете реализовать свой собственный RecordReader и в конце всех строк в текущем split, получить первую строку следующего разделения, используя его расположение блока. Я предлагаю это, потому что сам хаоп делает это, если последняя строка любого картографа неполна. Надеюсь это поможет!!

Смежные вопросы