目标:声明逗号分隔的字符串常量
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的多个值
答案 0 :(得分:1)
您可以使用单个逗号分隔的字符串('a,b,c')并在ACTIVE_VALUES上使用STRSPLIT(https://pig.apache.org/docs/r0.9.1/func.html#strsplit)函数来获取字符包,可以FLATTEN来创建多个记录。这些数据可以与测试文件中的数据进行INNER JOIN,以获得所需的结果。