gpt4 book ai didi

hadoop - 如何使用关系来过滤组?

转载 作者:可可西里 更新时间:2023-11-01 15:39:38 25 4
gpt4 key购买 nike

假设我有关系 A

DUMP A;
(a)
(d)
(g)

现在我想使用 A 的值来过滤组 G:

DUMP G;
(a, {(a,b), (a,c)})
(c, {(c,d), (c,x)})
(d, {(d,b), (d,e)})

...所以结果会是

(a, {(a,b), (a,c)})
(d, {(d,b), (d,e)})

然后我想提取要生成的组:

 (a,b)
(a,c)
(d,b)
(d,e)

我在过滤部分尝试了以下方法,但没有用:

J = JOIN G BY group, A BY a1;
R = FOREACH (FILTER J BY J::group == A::a1)
GENERATE FLATTEN(J.group);

最佳答案

如果我没有正确理解你的问题,J 的输出应该已经是你想要的了。默认情况下 JOIN 是一个内部连接,所以由于 c 没有出现在 A 中,所以它不会包含在 J 的输出中。如果转储 J,您应该看到:

(a, {(a,b), (a,c)}, a)
(d, {(d,b), (d,e)}, d)

(或者类似于变量位置切换的东西。)

FLATTEN 取出包,您需要执行以下操作:

R = FOREACH J GENERATE FLATTEN(G::FOO) ;

在这种情况下,FOO 是您对其执行 GROUP 的关系的名称。您可以使用 DESCRIBE G ; 验证其名称。

关于hadoop - 如何使用关系来过滤组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18522799/

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