【问题标题】:Opposite of a GROUP in apache pig latin?与 Apache pig latin 中的 GROUP 相对?
【发布时间】:2012-01-12 17:05:56
【问题描述】:

假设我在 apache pig 中有以下输入:

(123, ( (1, 2), (3, 4) ) )
(666, ( (8, 9), (10, 11), (3, 4) ) )

我想将这 2 行转换为以下 7 行:

(123, (1, 2) )
(123, (3, 4) )
(666, (8, 9) )
(666, (10, 11) )
(666, (3, 4) )

即这有点像“与 GROUP 做相反的事情”。这在猪拉丁语中可能吗?

【问题讨论】:

    标签: hadoop mapreduce apache-pig


    【解决方案1】:

    看看FLATTEN。它可以满足您的需求。

    但是,使用上面的符号,元组列表看起来像是一个元组。这应该是一个能正常工作的包。

    代替:

    (123, ( (1, 2), (3, 4) ) )
    (666, ( (8, 9), (10, 11), (3, 4) ) )
    

    您应该将数据表示为:

    (123, { (1, 2), (3, 4) } )
    (666, { (8, 9), (10, 11), (3, 4) } )
    

    那么,一旦是这个表格,你就可以:

    O = FOREACH grouped GENERATE $0, FLATTEN($1);
    

    【讨论】:

    • 是的,这就是我需要的。我已经更改了我的输入数据,使它成为一个包而不是一个元组,并且工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多