【问题标题】:How can I use Distinct on a group of bags in pig如何在猪的一组袋子上使用 Distinct
【发布时间】:2015-07-27 16:20:31
【问题描述】:

这是我的输入,如下所述:

({(Fish M.),(Fish M.),(Fish M.),(Fish M.),(Fish M.)},{(Acasuso J.),(Acasuso J.),( Acasuso J.),(Acasuso J.),(Acasuso J.)},{(8/23/2007),(8/23/2007),(8/23/2007),(8/23/2007) ,(8/23/2007)},{(99.84002222685783),(58.173357215875676),(PSL),(41.66666501098216),(EXW)})

我想对第一个和第二个袋子做一个不同的处理,以分别得到一个结果以产生如下输出:

(Fish M., Acasuso J., 8/23/2007, 99.84002222685783, 58.173357215875676, PSL, 41.66666501098216, EXW)

【问题讨论】:

    标签: nested apache-pig distinct bag


    【解决方案1】:

    这个脚本应该可以工作,为简洁起见,我忽略了您条目中的最后一个包。

    rr = load 'data/pig/input/Pig_DataSets/six' using CustomLoadFunction() as (one:bag{tup1:(c1:chararray)},two:bag{tup2:(c2:chararray)},three:bag{tup3:(c3:chararray)});
    tt = foreach rr {
        mm = two;
        nn = distinct mm;
        oo = one;
        pp = distinct oo;
        generate three,pp,nn;
        };
    

    您可能必须使用自定义加载函数,因为默认加载器无法正常工作(除非您进行一些数据清理)。这个post 讨论了一个可能适合您的场景的自定义加载器。

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2012-05-22
    相关资源
    最近更新 更多