2015-07-07 3 views
-1

Можете ли вы помочь мне изменить структуру моего файла?Hadoop Pig. Изменение структуры

Например:

  1. У меня есть строка с 2 разделителями:

    1;2,3,4;2 
    
  2. Я хочу изменить его баранами с 1 разделителем:

    1;2;2 
    1;3;2 
    1;4;2 
    
+0

Мы можем загрузить данные, используя ';' (разделитель с запятой), а затем отформатируйте значения, разделенные запятыми, с помощью функции TOKENIZE и FLATTEN данных для достижения цели. Ответил аналогичный вопрос несколько дней назад, проверьте это: http://stackoverflow.com/questions/31061504/loading-unstructered-data-with-different-delimiters-in-pig-using-piglatin-only/31062977#31062977 –

ответ

1

Свинья Сценарий:

A = LOAD 'a.csv' USING PigStorage(';') AS (value1:chararray,value2:chararray,value3:chararray); 
B = FOREACH A GENERATE value1, FLATTEN(TOKENIZE(value2, ',')), value3; 
DUMP B; 

Входной сигнал:

1;2,3,4;2 

Выход:

(1,2,2) 
(1,3,2) 
(1,4,2) 

Мы можем хранить В с использованием; как разделитель.

STORE B INTO 'requiredOutputLocation' USING PigStorage(';'); 
Смежные вопросы