1

有没有办法在 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 的简单解决方案?

4

1 回答 1

0

如果顺序无关紧要,那么您可以使用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

仅使用纯猪是不可能的。

于 2015-06-02T17:23:03.200 回答