【问题标题】:Generate a set of tuples from one tuple in PIG从 PIG 中的一个元组生成一组元组
【发布时间】:2017-07-13 15:57:51
【问题描述】:

我找不到任何解决方案如何在Pig中根据规则从一个元组生成一组元组:

输入:

((1,2,3),(a,b,c),(aaa,bbb,ccc))

输出:

(1,a,aaa)
(2,b,bbb)
(3,c,ccc)

假设应该应用 TOBAG 和 FLATTEN,但这似乎太棘手了。

【问题讨论】:

  • 发布你的整个脚本

标签: hadoop tuples apache-pig flatten


【解决方案1】:

使用zip 内置函数和参数解包(“star” args):

>>> x = ((1,2,3),('a','b','c'),('aaa','bbb','ccc'))

>>> tuple(zip(*x))
((1, 'a', 'aaa'), (2, 'b', 'bbb'), (3, 'c', 'ccc'))

>>> for y in zip(*x):
    print(y)

(1, 'a', 'aaa')
(2, 'b', 'bbb')
(3, 'c', 'ccc')

【讨论】:

    【解决方案2】:

    [tuple(original[i] for original in originals) for i in range(len(original[0]))] 如果您的原始列表名为originals,将为您提供第二个元组列表。

    【讨论】:

      猜你喜欢
      • 2018-08-27
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多