在PIG脚本中处理fs(hadoop shell)命令错误

时间:2015-02-02 09:30:20

标签: hadoop apache-pig hdfs

我有一个包含几个语句的PIG脚本。

示例脚本:

register x.jar;
fs -rmr <file-path>;
LOAD 'X' AS  (uuid:chararray,value:chararray);

我正在调用fs shell来删除HDFS上的文件:

fs -rmr <file-path>

如果存在,则会删除。 如果文件/目录不存在,则脚本退出&amp;抛出错误说:No such file or directory

我使用以下命令运行它:

pig -f filename.pig -param parameter1=value

&#34; -f&#34;正在强行停止它。

如果我避免&#34; -f&#34;,我会收到以下错误:

2015-02-02 02:50:15,388 [main] ERROR org.apache.pig.Main - ERROR 2997: Encountered IOException. org.apache.pig.tools.parameters.ParameterSubstitutionException: Undefined parameter : parameter1

无论此错误如何,我该如何继续?

2 个答案:

答案 0 :(得分:1)

如果要在pig脚本中使用参数替换,则需要使用$ sign正确地转义脚本中的参数:

fs -rmr $parameter1;

如果您使用-param parameter1=value来调用该脚本,则会将$parameter1替换为value

答案 1 :(得分:0)

如果您需要在执行pig脚本时提供参数值,则以下是语法。

pig --param parameter1 = value filename.pig

如果您发现任何问题,请尝试告诉我