gpt4 book ai didi

performance - 使用Hive/Hadoop连接两个排序的文件

转载 作者:行者123 更新时间:2023-12-02 21:46:24 27 4
gpt4 key购买 nike

我有两个排序的文件,我需要使用配置单元或hadoop加入并通过键进行聚合。
文件A按(A.X,A.Y)排序,文件B按(B.X,B.Y)排序。我可以使用配置单元进行连接,创建中间结果,然后执行另一个查询以求和。进行此操作的最佳方法是什么?做mapreduce工作还是使用 hive ?文件B比文件A小得多。我是否可以使用文件A和文件B排序的事实?

FILE A       FILE B    INTERMEDIATE_FILE   FINAL_FILE
X Y Z X Y X Y Z X Y
1 V1 10 1 V1 1 V1 10 1 30 (20 + 10)
1 V1 20 2 V2 1 V1 20 2 50 (50)
1 V2 30 3 V1 2 V2 50 3 130 (60 + 70)
2 V1 40 3 V1 60
2 V2 50 3 V1 70
3 V1 60
3 V1 70
4 V1 80

谢谢

最佳答案

您可以使用Pig中的“合并”选项来合并数据。

例:

data_a = load '$input1' as (X, Y, Z);
data_b = load '$input2' as (P, Q);
join_data = join data_a by (X,Y), data_b by (P,Q) using 'merge';

对join_data关系执行聚合逻辑。

这是一个排序合并联接操作。可以在 map 阶段通过打开两个文件并逐步浏览来完成连接。 Pig将其称为合并联接,因为它是排序-合并联接,但是排序已经完成。

资料来源:艾伦·盖茨(Alan Gates)的《 Programming Pig》。

关于performance - 使用Hive/Hadoop连接两个排序的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com