Apache pig 如何将带空格的命令行参数传递给ApachePig脚本?

Apache pig 如何将带空格的命令行参数传递给ApachePig脚本?,apache-pig,Apache Pig,我想编写一个pig脚本,将过滤器条件作为命令行参数。在命令行中,我想键入如下内容: pig -p "MY_FILTER=field1 == 0 and field2 == 5" myscript.pig 在我的脚本中,我有一行: my_filtered_data = filter my_data by $MY_FILTER; 当MY_FILTER没有空格并且我在我的值周围传递引号时,这就像预期的那样工作;因此,如果我在命令行中键入MY\u FILTER=\“field1==0\”,shell

我想编写一个pig脚本,将过滤器条件作为命令行参数。在命令行中,我想键入如下内容:

pig -p "MY_FILTER=field1 == 0 and field2 == 5" myscript.pig
在我的脚本中,我有一行:

my_filtered_data = filter my_data by $MY_FILTER;
MY_FILTER
没有空格并且我在我的值周围传递引号时,这就像预期的那样工作;因此,如果我在命令行中键入
MY\u FILTER=\“field1==0\”
,shell将传递带值的引号,pig执行我想要的扩展。但是,如果像
MY\u FILTER=\“field1==0\”


我尝试了一系列不同的引用技术,甚至尝试直接从python的子流程模块运行命令,以确保我的shell没有做奇怪的事情。

您使用哪一版本的Pig?我使用0.9.2,以下命令适用于我:

 pig -p "F='field1 == 3 AND field2 == 5'" test.pig

但它不适用于0.8.1。

我使用的是0.9.3,但我突然意识到,在被Pig调用之前,我的命令正在通过另一个级别的shell解释…我需要进一步研究。是的。调用pig的shell脚本没有正确引用,因此命令行没有正确传递。