在Pig中使用MATCHES的双引号

时间:2016-10-17 18:39:51

标签: hadoop apache-pig

我正在尝试根据带有双引号的字符串模式过滤猪的输入。

例如,假设input.txt有

field1="value1" field2="value2"
field1="value1" field2="val2"

我想过滤出具有field2 =" value2"的行。所以,我运行以下脚本

A = LOAD 'input.txt' AS line:chararray;
B = FILTER A BY line MATCHES '.*field2="value2".*';
DUMP B;

以上代码段会抛出0条记录。如果我没有给出结尾的双引号,那就可以了。

B = FILTER A BY line MATCHES '.*field2="value2.*';

我很想知道前者为什么不起作用。

1 个答案:

答案 0 :(得分:1)

尝试使用escape chacacter作为引号:

A = LOAD 'input.txt' AS line:chararray;
B = FILTER A BY line MATCHES '.*field2=\\"value2\\".*';
DUMP B;