【问题标题】:List relationships in pig列出猪中的关系
【发布时间】:2015-03-24 23:42:28
【问题描述】:

我有一个这样的列表:

a, 2
b, 1
a, 5
c, 5
d, 3
a, 3

我想把它转换成:

a,  2,3,5
b,  1
c,  5
d,  3

换句话说,我需要找到与字母相关的数字。

我的想法是,我可以过滤并获取唯一字母(a、b、c、d)的列表,然后对于每个字母,我需要找到相关的数字。

我怎样才能找到所有相关的数字?我需要一件一件地做吗?如果我有一个非常大的数据集,它会工作吗?或者我可以用猪的一些设施来完成这个。

【问题讨论】:

    标签: mapreduce apache-pig


    【解决方案1】:

    你可以试试这个吗?

    输入:

    a, 2
    b, 1
    a, 5
    c, 5
    d, 3
    a, 3
    

    PigScript:

    A = LOAD 'input' USING PigStorage(',') AS (col1:chararray,col2:chararray);
    B = GROUP A BY col1;
    C = FOREACH B {
                     sortedRow = ORDER A BY col2 ASC;
                     GENERATE group,FLATTEN(REPLACE(BagToString(sortedRow.$1.col2),'_\\s+',','));
                  }
    STORE C INTO 'output' USING PigStorage(',');
    

    输出:(将存储在output/part*文件中)

    a, 2,3,5
    b, 1
    c, 5
    d, 3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多