在我的工作流中,我有一个shell操作和一个hdfs操作
炮弹行动呼应日期(日期=2016-10-06)
我想在hdfs action mkdir path中设置上述日期参数。下面是动作定义。
<action name="fs-a347">
<fs>
<mkdir path='${nameNode}/user/kylin/${wf:actionData("shell-e424")["date"]}'/>
</fs>
<ok to="End"/>
<error to="Kill"/>
</action>
我得到以下错误。
EL_ERROR Encountered "&", expected one of [<INTEGER_LITERAL>, <FLOATING_POINT_LITERAL>, <STRING_LITERAL>, "true", "false", "null", "(", ")", "-", "not", "!", "empty", <IDENTIFIER>]
3条答案
按热度按时间rqqzpn5f1#
我也遇到了同样的情况,这很可能是由于与wf:actiondata()el函数交互的xml解析的变幻莫测。不要对Map使用双引号,而要换成单引号,如下所示:
ssm49v7z2#
为了从脚本或任何oozie操作节点捕获输出,需要利用
<capture-output/>
在节点定义的末尾添加标记。从oozie文档:
如果存在capture output元素,则它指示oozie to capture output>shell命令执行的标准输出。shell命令输出必须是java属性文件格式的>,并且不能超过2kb。在>工作流定义中,可以通过>字符串访问shell操作节点的输出action:output(字符串节点,字符串键)函数(请参阅“4.2.6>动作el函数”一节)。
有关shell操作的语法和完整规范,请参见oozie文档:http://oozie.apache.org/docs/4.0.0/dg_shellactionextension.html
cczfrluj3#
您需要将两个字符串连接起来以形成完整的路径。
它返回两个字符串的串联。具有空值的字符串被视为空字符串。