声明逗号分隔的字符串常量

时间:2015-04-21 18:03:21

标签: apache-pig constants declare

目标:声明逗号分隔的字符串常量

    test.csv
    =========
    a
    b
    c
    d
    e
    f

猪脚本:

  %declare ACTIVE_VALUES 'a', 'b','c' ; 

  -- Declaring constant like this using "" (double quotes) or even using escape characters (\) is resulting in a WARN message as below 
  -- WARN  org.apache.pig.tools.parameters.PreprocessorContext - Warning : Multiple values found for ACTIVE_VALUES

  A = LOAD 'test.csv' using PigStorage(',') AS (value:chararray);
  B = FILTER A BY value in ($ACTIVE_VALUES);
  dump B;

预期输出:

 a
 b
 c

在Pig中声明逗号分隔的字符串常量的任何输入。

- 使用“”(双引号)或甚至使用转义字符(\)声明这样的常量会产生如下的WARN消息

- WARN org.apache.pig.tools.parameters.PreprocessorContext - 警告:找到ACTIVE_VALUES的多个值

1 个答案:

答案 0 :(得分:1)

您可以使用单个逗号分隔的字符串('a,b,c')并在ACTIVE_VALUES上使用STRSPLIT(https://pig.apache.org/docs/r0.9.1/func.html#strsplit)函数来获取字符包,可以FLATTEN来创建多个记录。这些数据可以与测试文件中的数据进行INNER JOIN,以获得所需的结果。