我遵循了这个堆栈溢出问题,其中显示了如何计算pig中的行数。
我发现的问题是,如果我在计算过滤变量的行数之前做一些regex过滤器匹配和其他操作,那么这个过程非常耗时。
这是我的密码
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;
那么,有没有办法更快地得到结果呢?
1条答案
按热度按时间raogr8fs1#
使用parallel子句增加作业的并行性:
parallel为pig生成的mapreduce作业设置reduce任务数。默认值为1(一个reduce任务)。并行只影响reduce任务的数量。Map并行性由输入文件决定,每个hdfs块对应一个Map。如果不指定parallel,则仍然会得到相同的map并行性,但只有一个reduce任务。
希望这有帮助!!!。。。