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

时间:2012-09-19 19:26:30

标签: 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_FILTER=\"field1==0\",shell将使用值传递引号,并且pig执行我想要的扩展。但是,如果我提供MY_FILTER=\"field1 == 0\"

,则参数将无法扩展

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

1 个答案:

答案 0 :(得分:2)

您使用的是哪个版本的猪?我使用0.9.2,以下命令对我有用:

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

但它不适用于0.8.1。