gpt4 book ai didi

java - 如何连接三张 table ?

转载 作者:行者123 更新时间:2023-12-01 15:11:09 25 4
gpt4 key购买 nike

我有一个巨大的数据集,包含三个表,假设三个表的数据类似于:

表A:

ID名称地点

1 个 AAA 地点1
2 bbb地点2

表B:

Id cId 名称

1 11 aaa
2 22 bbb

表C:

cId cname

11 p1
22 p2

当我使用 hadoop mapreduce 连接表 A 和 B 时,我得到输出

k v

1 个 AAA 地点1 11
2 bbb 地点2 22

现在我想将表 C 与上面的输出连接起来,我可以在其中替换 11 --> p1。我该如何解决这个问题?

最佳答案

可能最简单的解决方案是使用 Pig正如@David提到的。为了快速测试,你想出了这样的东西:

TABLE_A = LOAD 'hdfs://my_path/input/table_a.txt' using PigStorage(' ') AS (
id:chararray,
name:chararray,
place:chararray
);

TABLE_B = LOAD 'hdfs://my_path/input/table_b.txt' using PigStorage(' ') AS (
id:chararray,
cid:chararray,
name:chararray
);

TABLE_C = LOAD 'hdfs://my_path/input/table_c.txt' using PigStorage(' ') AS (
cid:chararray,
cname:chararray
);

TMP = FOREACH (join TABLE_A by id, TABLE_B by id) GENERATE
TABLE_A::id as id,
TABLE_A::name as name,
TABLE_A::place as place,
TABLE_B::cid as cid;


JOIN_ABC = FOREACH (join TMP by cid, TABLE_C by cid) GENERATE
TMP::id,
TMP::name,
TMP::place,
TABLE_C::cname;

store JOIN_ABC into 'hdfs://my_path/output' using PigStorage(' ');

关于java - 如何连接三张 table ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346156/

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