gpt4 book ai didi

hadoop - 在内袋中添加关系字段

转载 作者:可可西里 更新时间:2023-11-01 16:13:06 26 4
gpt4 key购买 nike

我有这样的关系:

R1 : a:chararray,b:chararray,c:bag{t:tuple(c1:chararray,c2:chararray)}

所以数据看起来像:

(a,b,{(aa,bb),(cc,dd)})  
(e,f,{(gg,hh),(ii,jj)})

我想得到那个:

R2 : c:bag{t:tuple(c1:chararray,c2:chararray,b:chararray,a:chararray,)}

所以:

{(aa,bb,b,a),(cc,dd,b,a)})  
{(gg,hh,f,e),(ii,jj,f,e)}

我尝试了几种嵌套 foreach 的解决方案并压平了袋子,我尝试了交叉连接......但没有任何好的解决方案。

特别是我希望这应该有效:

FOREACH R1  {
flatC= FOREACH R1 GENERATE FLATTEN(c) as c1,c2,c3;
GENERATE
a,
b,
c1,
c2,
c3;
};

有没有人有想法?

谢谢

最佳答案

一种选择是您可以这样尝试。

输入.txt

a       b       {(aa,bb),(cc,dd)}
e f {(gg,hh),(ii,jj)}

PigScript:

A= LOAD 'input.txt' AS (a:chararray,b:chararray,c:bag{(c1:chararray,c2:chararray)});
B = FOREACH A GENERATE FLATTEN(c),b,a;
C = GROUP B BY (b,a);
D = FOREACH C GENERATE $1;
DUMP D;
DESCRIBE D;

输出:

({(aa,bb,b,a),(cc,dd,b,a)})
({(gg,hh,f,e),(ii,jj,f,e)})

关于hadoop - 在内袋中添加关系字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232906/

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