有没有办法在 Pig 中“合并”两个相同大小的包?
例如:我有两个这样的包——
({(0.05,0.0),(0.05,0.0)}, {a, b})
我想要的是:
(0.05,0.0,a), (0.05,0.0,b)
(不管它是在袋子里还是在元组里)。
采用 UDF 方式似乎非常简单。是否有使用 Pig 运算符或 DataFu UDF 的简单解决方案?
有没有办法在 Pig 中“合并”两个相同大小的包?
例如:我有两个这样的包——
({(0.05,0.0),(0.05,0.0)}, {a, b})
我想要的是:
(0.05,0.0,a), (0.05,0.0,b)
(不管它是在袋子里还是在元组里)。
采用 UDF 方式似乎非常简单。是否有使用 Pig 运算符或 DataFu UDF 的简单解决方案?
如果顺序无关紧要,那么您可以使用UDF执行此操作。在 Python 中:
@outputSchema('combined:{(f1, f2, f3)}')
def combine_equal_bags(bag1, bag2):
out = []
for b1, b2 in zip(bag1, bag2):
out.append(b1 + (b2,))
return out
仅使用纯猪是不可能的。