首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PIG -从一个大的输入优化各种分组结构的最佳方法

问PIG -从一个大的输入优化各种分组结构的最佳方法
EN

Stack Overflow用户
提问于 2013-06-21 03:29:15
回答 1查看 145关注 0票数 0

我正在使用Pig获取一个表单的大txt文件

A列|B列|C列|D列|E列|F列|G列

我的目标是接受此输入并按列的不同组合进行分组,以获得如下所示的内容

(A列/B列)|计数(F列)|求和(G列)

(A列/C列)|计数(F列)|求和(G列)

(A列/D列)|计数(F列)|求和(G列)

(B列/C列)|计数(F列)|求和(G列)

我想知道是否有办法构建我的pig代码,以便只需要处理数据的次数尽可能少,因为输入保持不变,而所有变化的都是分组。

在进阶时谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-21 04:49:57

Pig会自动执行此优化。如果您总是将分组应用于原始数据,则所有分组都可以并行完成,并将在单个map-reduce作业中执行。

如果您想对每个分组执行相同的操作,则应该定义一个宏,这样就可以省去一些键入操作。例如:

代码语言:javascript
复制
DEFINE DO_STUFF(input, grp1, grp2) RETURNS result {
    grouped = GROUP $input BY ($grp1, $grp2);
    $result = FOREACH grouped GENERATE FLATTEN(group), COUNT(grouped.F), SUM(grouped.G);
};

data = LOAD '/path/to/txt' AS (A, B, C, D, E, F, G:int);
W = DO_STUFF(data, A, B);
X = DO_STUFF(data, A, C);
Y = DO_STUFF(data, A, D);
Z = DO_STUFF(data, B, C);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17222210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档