2016-04-17 6 views
0

Я работаю над неструктурированным текстовым файлом. Я хочу обработать его с помощью hadoop , но у меня возникла проблема с извлечением необходимых данных из файла .pls help на нем.Как обрабатывать неструктурированные текстовые данные от hadoop (PIG/MapReduce)

мой файл выглядит следующим образом: enter image description here

и я жду выхода, как;

enter image description here

+1

Скопируйте и вставьте, не используйте скриншоты. Это включает в себя код свиньи, который вы написали –

ответ

0

Как я знал, что недействительные данные могут быть проигнорированы MapReduce, по крайней мере, вы можете реализовать свой собственный map, чтобы сделать это.

Например, разделитель \n, каждая строка с указанным форматом должна быть принята, иначе будет проигнорирована. В этом случае каждая строка содержит 6 столбцов, разделенных пробелом, должна обрабатываться как нормальная.

//map @Override public void map(K key, V value, Context context) throws IOException, InterruptedException { // value contains line content, // verify value, only those valid lines should be accepted. }

+0

Спасибо Киту за то, что вы оказали мне помощь. Keith Map Reduce будет лучшим выбором, как всегда, но я хочу уменьшить слишком много материала для кодирования и хочу реализовать его на стороне PIG. Если вы поделитесь идеей с свинью, тогда она также будет gd :) –

+0

Я боюсь, что вы правы. Я бы посоветовал использовать PIG, если бы я уже знал, что такое PIG. PIG является профессионалом в работе с этим и более удобным. Тем не менее, я все еще новичок в PIG, и я собираюсь узнать больше об этом. Счастливого пути. –

0

Вы можете использовать RANK в PIG для фильтрации заголовков. Попробуй это.

A = LOAD 'file' as (line:chararray); 
B = RANK A; 
C = FILTER B BY rank_A > 5; 
D = FOREACH C GENERATE line; 
DUMP D; 
+0

Спасибо Vignesh, я попробовал, он работает, но что, если сценарий похож на ниже. Пожалуйста, проверьте мой ниже пост, поскольку я не могу опубликовать в комментарии. –

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