【问题标题】:Any faster way to count rows in Pig任何更快的方法来计算 Pig 中的行数
【发布时间】:2016-09-28 05:38:15
【问题描述】:

我关注了This Stack Over Flow question,其中显示了如何计算猪的行数。

我发现的问题是,如果我在尝试计算已过滤变量的行数之前进行一些正则表达式过滤器匹配和其他操作,这将非常耗时。

这是我的代码

all_data = load '/logs/chat1.log' USING TextLoader() as line:chararray;
match_filter_1 = filter all_data by ( line matches 'some regex');
inputGroup = GROUP match_filter_1 ALL;
totalLine = foreach inputGroup generate COUNT (match_filter_1);
dump totalLine;

那么,有什么方法可以更快地获得结果?

【问题讨论】:

  • 你的数据大小是多少
  • 现在是演示数据大小,如 2 GB。

标签: apache-pig rowcount


【解决方案1】:

使用 PARALLEL 子句增加作业的并行度:

PARALLEL 为 Pig 生成的 MapReduce 作业设置 reduce 任务的数量。默认值为 1(一个 reduce 任务)。 PARALLEL 只影响 reduce 任务的数量。映射并行度由输入文件决定,每个 HDFS 块一个映射。 如果您不指定 PARALLEL,您仍然会获得相同的 map 并行度,但只有一个 reduce 任务。

A = LOAD 'myfile' AS (t, u, v);
B = GROUP A BY t PARALLEL 18;

希望对您有所帮助!!!...

【讨论】:

  • 目前我的养猪工作推迟了。所以我现在不能尝试这个,所以接受或拒绝。但是一旦我恢复工作,我一定会尝试这个并希望做出积极的评价。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 2014-08-01
  • 1970-01-01
  • 2015-01-15
相关资源
最近更新 更多