在猪身上,如何在壳中传递这个?
{20160218,20160219,20160220,20160221,20160222,20160223,20160224}根据shell代码,如下:
pig -f cart_abandonment.pig -param input='{20160218..20160224}'使用扩展函数?由于单引号省略了扩展,所以上面的内容不起作用。
没有单引号,似乎只有20160218被通过。猪脚本如下:
list = load '/inserteddate={$input}'
USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') as cartjson:map[];发布于 2016-03-02 22:36:28
尝试使用双引号命令替换($(...)):
pig -f cart_abandonment.pig -param input="$(echo {20160218..20160224} | tr ' ' ',')"input=的一部分传递,数字列表必须是双引号。$(...))来生成数字列表(并将其回显到stdout,命令替换捕获)来实现的,这个列表是双引号的,因此它的输出由shell作为一个单词处理,因此input=num1 num2 ...形成了一个单一的选项-参数。pig需要用逗号分隔的值,而传递给echo的大括号扩展会产生空格分隔的值,因此需要用tr ' ' ','将空格转换为逗号。https://stackoverflow.com/questions/35759429
复制相似问题