哪位仁兄可以提供个两个字段一起传入的思路啊?{:soso_e150:} Joker 发表于 2014-12-9 17:43
其实,我打算写UDF把需要字段传过去,但是,当我写完后,问题还是一样,我无法把字段A和字段B的电话字段一 ...
循环里套循环,无论是比较,还是你写的函数都是可以的。
muyannian 发表于 2014-12-9 18:31
循环里套循环,无论是比较,还是你写的函数都是可以的。
我看了你上面的例子group里面有A
但是我没有group获取不到,使用JOIN总有一方是没有数据的
可以foreach{
foreach
}
这样嵌套?
大哥可以写个实例代码?
Joker 发表于 2014-12-9 20:37
我看了你上面的例子group里面有A
但是我没有group获取不到,使用JOIN总有一方是没有数据的
上面那个应该也可以,也可以参考这个:
A = load 'foo' as (x:chararray, y:int, z:int);
A1 = foreach A generate x, y + z as yz;
B = group A1 by x;
C = foreach B generate SUM(A1.yz);
pig2 发表于 2014-12-9 15:51
可以试一下全连接Full Join
更多内容:
pig入门简单操作及语法包括支持数据类型、函数、关键字、操作符等 ...
版主 你好,我想请问下 JOIN FULL怎么连接三张表或者更多
我使用
JOIN A BY a1 FULL, B BY b1
这样是正确的
但是
JOIN A BY a1 FULL,B BY b1 FULL, C BY c1;
这样就报错了,请问有什么方式可以连接三张表或者更多张表的方式吗?
Joker 发表于 2014-12-10 14:00
版主 你好,我想请问下 JOIN FULL怎么连接三张表或者更多
我使用
目前还不清楚是否支持多表。
理论上应该支持的,最好到官网上看看。
不过即使不支持也有办法,就是把前两张链接表视为一张表,然后再次链接第三张表,如此循环。
muyannian 发表于 2014-12-10 21:13
目前还不清楚是否支持多表。
理论上应该支持的,最好到官网上看看。
不过即使不支持也有办法,就是把前 ...
恩,pig不支持三张表查询,加入你使用的是inner join是可以的
如
RESULT = JOIN A BY a1,B BY b1, C BY c1;
这样pig不会报错
但是如果用的是outer join之类,左连接,右连接,以及全连接,都是不可行的
之后,我想的就是
J = JOIN A BY a1 FULL,B BY b1;
K = JOIN C BY c1 FULL,D BY d1;
RESULT = JOIN J BY (a1,b1) FULL , K BY (c1,d1);
这样实现,因为后面的需求就是为空的字段按照0填充。
这个我写了个Pig UDF进行实现
不过哥们还是非常感谢你了
页:
1
[2]