【问题标题】:PIG sum corresponding elements in tuplePIG 对元组中的对应元素求和
【发布时间】: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


【解决方案1】:

已经回复here

import operator
tuple_bag = (1, 0, 1), (2, 1, 0)
tuple(map(operator.add, *tuple_bag))

【讨论】:

  • 我的函数做同样的事情,但问题是 PIG 效率,我正在寻找更有效的方法 - 也许一些内置 PIG UDF。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2014-12-15
  • 2019-05-14
  • 1970-01-01
相关资源
最近更新 更多