我想在Apache Pig中将数据转换为特定格式,以便我可以在其上使用报告工具。
例如:
10:00,abc
10:00,cde
10:01,abc
10:01,abc
10:02,def
10:03,efg
输出应采用以下格式:
abc cde def efg
10:00 1 1 0 0
10:01 2 0 0 0
10:02 0 0 1 0
这里的主要问题是一个值可以连续多次出现,具体取决于示例csv文件中可用的不同值,最多可达120个。
任何有关解决此问题的建议都非常受欢迎。
由于 GAGAN
答案 0 :(得分:1)
尝试以下内容:
A = load 'data' using PigStorage(",") as (key:chararray,value:chararray);
B = foreach A generate key,(value=='abc'?1:0) as abc,(value=='cde'?1:0) as cde,(value=='efg'?1:0) as efg;
C = group B by key;
D = foreach C generate group as key, COUNT(abc) as abc, COUNT(cde) as cde, COUNT(efg) as efg;
这应该可以计算特定键的特定值的出现次数。
编辑:刚刚注意到问题的限制120部分。如果你不能超过120,请输入以下代码
E = foreach D generate key,(abc>120?"OVER 120":abc) as abc,(cde>120?"OVER 120":cde) as cde,(efg>120?"OVER 120":efg) as efg;