Как получить этот вывод из латыни свиньи в MapReduce
Я хочу получить следующий вывод из Pig Latin / Hadoop
((39,50,60,42,15,Bachelor,Male),5)
((40,35,HS-grad,Male),2)
((39,45,15,30,12,7,HS-grad,Female),6)
из следующей выборки данных выборка данных для взрослых данных
Я написал следующий текст на латинском:
sensitive = LOAD '/mdsba/sample2.csv' using PigStorage(',') as (AGE,EDU,SEX,SALARY);
BV= group sensitive by (EDU,SEX) ;
BVA= foreach BV generate group as EDU, COUNT (sensitive) as dd:long;
Dump BVA ;
К сожалению, результаты получаются так
((Bachelor,Male),5)
((HS-grad,Male),2)
1 ответ
Чем попытаться проецировать данные AGE тоже. Что-то вроде этого:
BVA= foreach BV generate
sensitive.AGE as AGE,
FLATTEN(group) as (EDU,SEX),
COUNT(sensitive) as dd:long;
Еще одно предложение - указать тип данных при загрузке данных.
sensitive = LOAD '/mdsba/sample2.csv' using PigStorage(',') as (AGE:int,EDU:chararray,SEX:chararray,SALARY:chararray);