如何将shell变量传递给pig param文件

时间:2017-07-07 13:47:22

标签: apache-pig

我们如何将shell变量传递给pig param文件。作为示例,我将shell变量定义为DB_NAME。我想将我的pig参数文件定义为

p_db_nm = $ DB_NAME

我尝试过上面的功能不起作用,我确实尝试过echo $ DB_NAME也不起作用。

我知道我可以通过在命令行中使用-param来传递这个但我有很多变量,我想将它放在param文件中,但值将在shell脚本中定义。我在谷歌搜索了很多主题,没有运气!!!

我的问题与http://grokbase.com/t/pig/user/09bdjeeftk/is-it-possible-to-use-an-env-variable-in-parameters-file中发布的内容类似,但我发现没有可行的解决方案。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用-param_file选项传递参数文件。

如果参数文件名为" pig.cfg"定义如下,

p_db_nm=$DB_NAME
在shell中,pig命令就是这样,

pig -param_file pig.cfg

最后在你的猪中,你可以在cfg文件中使用KEY命名的变量。 (在这种情况下,$ p_db_nm)