Дамп строки или кортежа (строка, целое число) в pig

У меня есть простой скрипт свиньи, я смог прочитать данные и сбросить данные. Однако мне не удалось вывести строку или кортеж (string, int). Просто интересно, что мне здесь не хватает? Большое спасибо!


dataset = LOAD '/Users/me/input' USING PigStorage() AS (id:chararray,data:chararray);

dataset_GROUP = GROUP dataset ALL;
dataset_COUNT = FOREACH dataset_GROUP GENERATE COUNT(dataset);

DUMP "record_count = ";                 <-- this does not work
DUMP dataset_COUNT;                     <-- this works 
DUMP "record_count = ", dataset_COUNT;  <-- this does not work

person Edamame    schedule 12.03.2015    source источник


Ответы (1)


вы можете использовать функцию CONCAT() Apache Pig, чтобы объединить вашу строку с результатом следующим образом:

dataset = LOAD '/Users/me/input' USING PigStorage() AS (id:chararray,data:chararray);

dataset_GROUP = GROUP dataset ALL;
dataset_COUNT = FOREACH dataset_GROUP GENERATE CONCAT('record_count = ', COUNT(dataset));

DUMP dataset_COUNT;

Для получения дополнительной информации о Concat() в Apache Pig 0.13.0 вы можете проверить здесь

Если вы используете более старую версию Pig, вы можете написать свою Определяемую пользователем функцию (UDF), которая будет выполнять операцию конкатенации и возвращать результат. Дополнительные сведения см. в документации Pig по UDF.

person Prasad Khode    schedule 12.03.2015