我开始接触PigLatin,我有一个问题......
现在我正在使用单词计数的经典示例,我处理了几个电子书,然后我得到单词列表和每个单词出现的次数。
使用该数据作为猪的输入数据,然后按每个单词出现的次数对其进行排序,我得到5个最常用的单词。到目前为止,我的问题很好,现在我想得到5个最常见的单词,但这些单词出现的次数不同。让我解释一下:
想象一下这个输出到字数统计工作:
(hey, 1)
(hello, 10)
(my, 2)
(cat, 1)
(eat, 4)
(mom, 10)
(house, 10)
然后我在Grunt shell上执行以下操作:
data = load 'file' as (word, freq);
srtd = order data by freq;
lmtd = limit srtd 3;
dump lmtd;
我得到的输出是:
(hello, 10)
(mom, 10)
(house, 10)
但如果我想得到这个怎么办:
(hello, 10)
(eat, 4)
(my, 2)
如何过滤掉重复的频率值?
谢谢!
答案 0 :(得分:1)
你可以写一个UDF来做到这一点,或许更快一点,但你可以试试其中之一。
data = load 'file' as (word, freq); counts = GROUP data BY freq; countsLimited = FOREACH counts { word = TOP(1, 2, data); GENERATE FLATTEN(word); }
或
data = load 'file' as (word, freq); counts = GROUP data BY freq; countsLimited = FOREACH counts { word = LIMIT data 1; GENERATE word; }