问题描述
最近我一直在做一个项目,我需要以某种特定格式输出最终数据。尽管我的实际数据集非常复杂。我将通过使用伪数据来说明我的问题。
如果我有以下数据-
>>> str1 = "hit hop hat"
>>> str2 = "hot has hit hop"
>>> set_of_words1=set( str1.split() )
>>> set_of_words2=set( str2.split() )
>>> set_of_words1 & set_of_words2
{'hop','hit'}
然后我要使用Pig以以下格式输出此数据-
1
2
3
4
5
5
4
2
1
注意->对于4到8,我不包括4,8本身。
我尝试过以下代码,但是如何在猪的最终输出中添加Between 4 and 8 2
Between 1 and 5 5
。
Between 4 and 8
从现在开始,我不知道如何将data3,data4以我上面指定的格式存储在单个文件中。
解决方法
创建两个过滤的数据集,全部计数并将结果合并为单个输出。在编写之前,在各个计数之前添加所需的文字文本。
data = LOAD 'f.txt' AS num:int;
data3 = FILTER data BY num > 4 AND num < 8;
data4 = FILTER data BY num > 1 AND num < 5;
data3_grp = GROUP data3 ALL;
data3_count = FOREACH data3_grp GENERATE 'Between 4 and 8',COUNT(data3);
data4_grp = GROUP data4 ALL;
data4_count = FOREACH data4_grp GENERATE 'Between 1 and 5',COUNT(data4);
data5 = UNION data3_count,data4_count