【发布时间】:2015-08-06 08:37:16
【问题描述】:
我有一大包元组,其中包含常量但未知数量的整数(超过 200 个)。有没有办法从这个元组中求和相应的元素?
例如SUM_TUPLES({(1, 0, 1), (2, 1, 0)}) 应该返回(3, 1, 1)。
我用 Python 编写了我的 UDF,但由于包和元组真的很大,我得到了 GC limit exceeded error。
def SUM_TUPLES(tuple_bag):
if not tuple_bag:
return []
result = len(iter(tuple_bag).next())*[0]
for tup in tuple_bag:
for i, ele in enumerate(tup):
result[i] += ele
return result
【问题讨论】:
-
您的数据是否包含除袋子之外的其他列?还是只有一列包含要添加的袋子?
-
数据有 4 列 - 第一个是 chararrays,最后一个是元组。我将数据按 3 第一列分组,并希望对分组元组中的值求和(它们通过组操作放入包中)
标签: apache-pig udf