我有一个文件,其中的行看起来像这样。
('www.example.com', 'FirstName LastName', '12345', 'Firstname', 'Lastname', '1967-05-16', 'Organization name')
使用 PIG,我想计算文件中相同的“组织名称”出现的次数,并以以下格式输出
'Count Result','www.example.com', 'FirstName LastName', 'Organization name'
这是我到目前为止所做的尝试,我知道我在 countOccurance
行遗漏了一些东西,但无法弄清楚是什么:
data = LOAD 'data' AS (line:chararray);
data = FOREACH data GENERATE line, REPLACE(REPLACE(line, '\\(',''),'\\)','');
data = FOREACH data GENERATE STRSPLIT(line, '\\,') as entity;
grouped = GROUP data BY entity.$6;
countOccurance = FOREACH grouped GENERATE group as entity.$6,COUNT(data);
DUMP countOccurance;
最佳答案
我已经有一段时间没有对 pig 做过任何事情了,但我认为你可以做到。
data = LOAD date USING pigstorage(',') AS (URL:chararray, FULLNAME:chararray, ..., COMPANYNAME:chararray);
data = FOREACH (GROUP data BY COMPANYNAME) GENERATE COUNT(data.COMPANYNAME), data.URL, data.FULLNAME, data.COMPANYNAME;
DUMP data;
当然用其他列名替换...。
关于hadoop - 计算 pig 列中单词的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34947488/