是否可以在<param>
代码之前的oozie中使用<script>
代码。
如下所示:
<param>script_name=${wf:actionData('GetJobParameters')['SCRIPT_NAME']}</param>
<script>/tmp/abc/hive/${script_name}</script>
<param>K_NAME=${wf:actionData('GetJobParameters')['K_NAME']}</param>
<param>P_NAME=${wf:actionData('GetJobParameters')['P_NAME']}</param>
<param>CNAME=${wf:actionData('GetJobParameters')['C_NAME']}</param>
原因是我的脚本名称应该作为参数传递而不是硬编码。这个脚本名称将从我的mysql数据库中取出,如${wf:actionData('GetJobParameters')['SCRIPT_NAME']}
。
感谢任何帮助。
答案 0 :(得分:0)
没有。你不能这样做,因为Oozie工作流/动作xml期望按照模式中的定义按顺序排列所有内容。
此外,您对<param>
标记的理解似乎也是错误的。它不是用于声明变量并在以后使用它。我猜您正在编写hive
操作,<param>
用于将<key=value>
参数传递给配置单元作业。这与--hivevar
类似,用于在hive SQL中指定变量。 key
是您在hive sql脚本中使用的变量。
你可以像@SamsonScharfrichter提到的那样:
<script>/tmp/abc/hive/${wf:actionData('GetJobParameters')['SCRIPT_NAME']}</script>