hadoop - 计算 pig 列中单词的出现次数

标签 hadoop count apache-pig

我有一个文件,其中的行看起来像这样。

('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/

相关文章:

bash - 在 shell 脚本中解析文本文件

hadoop - HIVE 抛出错误中的简单表创建

hadoop - 组织.apache.ignite.IgniteException : For input string: "30s" in ignite hadoop execution

mysql - 选择每个对象的计票数和得票最多的对象

apache-pig - 如何使用 PIG 查找给定数据集中的最大年份?

hadoop - 在 hadoop/hive 中将纪元时间转换为 PST 区域

mysql - 如何对一张表中的相同(参数)记录进行求和和分组 MySQL

java - n个质数之和java,困惑

xml - 在 Hadoop 中处理复杂的 XML 以提取数据

hadoop - 处理来自Apache Pig的PST文件