我有一个关系MY_REL,它是X和Y连接的结果:
MY_REL = {X::x1,X::x2,Y::y1,Y::y2}
我试着做
Bla = foreach MY_REL generate X;
猪呕吐:
ERROR 1000: Error during parsing. Scalars can be only used with projections
我尝试了X :: *并抛出:无效的别名X。
丑陋的解决方法:我切换到显式编写所有列名:
Bla = foreach MY_REL generate X::x1, X::x2;
有没有一种很好的方法来生成所有X列?
答案 0 :(得分:3)
不使用JOIN
,而是使用COGROUP
。 COGROUP
会创建一个类似于{X : {x1, x2}, Y : {y1, y2}}
的关系。因此,您可以这样做:
foreach MY_REL GENERATE FLATTEN(X);
请注意,它是一个包,所以你想要flatten
。
答案 1 :(得分:1)