【问题标题】:UnGroup in Apache Pig在 Apache Pig 中取消分组
【发布时间】:2013-02-01 06:16:10
【问题描述】:

Apache Pig 是否支持 UNGROUP 操作?我想没有。那么有人可以帮我解决这个问题吗? 我有一排表格

1,a-b-c
2,d-e-f
3,g-h

我想把它展开成表格

1,a
1,b
1,c
2,d
2,e
2,f
3,g
3,h

任何帮助表示赞赏。

【问题讨论】:

    标签: hadoop mapreduce apache-pig


    【解决方案1】:

    您可能应该使用内置 STRSPLIT 将您的第二个字段拆分为多个标记,然后应用 FLATTEN 为每个元素创建 1 行。像这样的:

    A = LOAD 'input.txt' as (id, data);
    
    B = FOREACH A GENERATE id, FLATTEN(STRSPLIT(data,'-'));
    

    【讨论】:

    • STRSPLIT 返回一个元组而不是一个包,它不会将数据值旋转到行中,您最终将得到与输入数据相同数量的元组。要获得您想要的结果,请查看stackoverflow.com/questions/12549842/…
    • 刚刚试了一下,效果很好。将“-”替换为空格而不是 TOKENIZE,因为它返回一个 BAG,并且在 FLATTEN 之后它会创建旋转行。 B = FOREACH A GENERATE id, FLATTEN(TOKENIZE(REPLACE(data, '-', ' ')));
    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多