pig:从文件 B 中获取文件 A 中的字符串数
pig: getting count of strings from file A from file B
我是 PIG 的新手,我正在寻求帮助。
我有两个文件 A(模板)和 B(数据)都有大量的非结构化内容。
议程是遍历文件 B(数据)并针对文件 A 的每个模板(行)找到计数。
我认为它应该在嵌套语句的循环中工作,但我不知道如何在 pig 中实现相同的效果。
示例:-
file1.txt
hello ravi
hi mohit
bye sameer
hi mohit
hi abc
hello cds
hi assaad
file2.txt
hi mohit
hi assaad
我需要计算 file2 两行的数量。
预期的输出可能如下所示:-
hi mohit: 2
hi assaad: 1
请告诉我。
让我们从加载您的两个数据集开始:
data = LOAD 'file1.txt' AS (line:chararray);
templates = LOAD 'file2.txt' AS (template:chararray);
现在我们基本上需要在模板上加入上述关系。加入后,我们可以对模板进行 GROUP 以获取每个模板的计数。然而,这将需要 2 个 map-reduce 阶段,一个用于 JOIN,一个用于 GROUP BY。这里是您可以使用 COGROUP 的地方。这是一个非常有用的操作,您可以在此处阅读更多相关信息:https://www.tutorialspoint.com/apache_pig/apache_pig_cogroup_operator.htm
cogroupedData = COGROUP data BY line, templates BY template;
templateLines = FILTER cogroupedData BY (NOT ISEmpty(templates));
templateCounts = FOREACH templateLines GENERATE
group AS template,
COUNT(data.line) AS templateCount;
DUMP templateCounts;
COGROUP 的作用本质上类似于 JOIN,然后是同一键上的 GROUP BY(本例中为模板)。它只需要一个 map-reduce 阶段。上面应用的过滤器是删除 file2.txt
中没有模板的记录
我是 PIG 的新手,我正在寻求帮助。 我有两个文件 A(模板)和 B(数据)都有大量的非结构化内容。 议程是遍历文件 B(数据)并针对文件 A 的每个模板(行)找到计数。
我认为它应该在嵌套语句的循环中工作,但我不知道如何在 pig 中实现相同的效果。
示例:-
file1.txt
hello ravi
hi mohit
bye sameer
hi mohit
hi abc
hello cds
hi assaad
file2.txt
hi mohit
hi assaad
我需要计算 file2 两行的数量。 预期的输出可能如下所示:-
hi mohit: 2
hi assaad: 1
请告诉我。
让我们从加载您的两个数据集开始:
data = LOAD 'file1.txt' AS (line:chararray);
templates = LOAD 'file2.txt' AS (template:chararray);
现在我们基本上需要在模板上加入上述关系。加入后,我们可以对模板进行 GROUP 以获取每个模板的计数。然而,这将需要 2 个 map-reduce 阶段,一个用于 JOIN,一个用于 GROUP BY。这里是您可以使用 COGROUP 的地方。这是一个非常有用的操作,您可以在此处阅读更多相关信息:https://www.tutorialspoint.com/apache_pig/apache_pig_cogroup_operator.htm
cogroupedData = COGROUP data BY line, templates BY template;
templateLines = FILTER cogroupedData BY (NOT ISEmpty(templates));
templateCounts = FOREACH templateLines GENERATE
group AS template,
COUNT(data.line) AS templateCount;
DUMP templateCounts;
COGROUP 的作用本质上类似于 JOIN,然后是同一键上的 GROUP BY(本例中为模板)。它只需要一个 map-reduce 阶段。上面应用的过滤器是删除 file2.txt
中没有模板的记录