【问题标题】:PIG: How to Dynamically Pass N parameter valuesPIG:如何动态传递 N 个参数值
【发布时间】:2016-08-11 20:35:13
【问题描述】:

我有一个不断增长的 ID 列表,我想将这些 ID 动态传递到 pig 脚本中,以帮助处理单个列的数据。

我手动传递参数值,这是不可扩展的。

命令EX:

pig --param id1=123 id2=456 id3=789 get foo.pig 

脚本示例

A = load '$INPUT' using AvroStorage();
B = foreach A generate value.rawData#'id' as user_id:chararray;
C = FILTER B BY user_id == '$id1' or user_id == '$id2' OR user_id == '$id3'; 
DUMP C;

如何动态传递 N 个参数值并将它们应用于同一列的区域运算符?

【问题讨论】:

    标签: apache-pig parameter-passing


    【解决方案1】:

    如果我必须解决这个问题,我会:-

    1> 创建一个简单的文本文件(比如 id.txt)并继续向其附加新闻 ID。

    2> 在我的 PIG 脚本中使用 id.txt 来加入 $INPUT 文件,如果找不到 id,记录将被自动过滤:-

    A = load '$INPUT' using AvroStorage();
    A = foreach A generate value.rawData#'id' as user_id:chararray;
    B = load 'id.txt' using PigStorage as (userId:chararrray);
    C = JOIN A by user_id B by userId ; 
    -- after above JOIN C will only contain records which has user_id in both files
    DUMP C;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多