从PIG中的一个元组生成一组元组

时间:2017-07-13 15:57:51

标签: hadoop tuples apache-pig flatten

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

输入:

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

输出:

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

假设应该应用TOBAG和FLATTEN,但这看起来太棘手了。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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')