我正在尝试在oozie 3.3.2中执行决策控制节点但是获取javax.servlet.jsp.el.ELException
遇到“{”
<decision name="decision-wf">
<switch>
<case to="another_wf">
${fs:fileSize(${OutputDir}/000000_0) gt 100 }
</case>
<default to="fail-wf"/>
</switch>
如何以String格式传递参数,因为上面提到的FS方法需要String输入?
答案 0 :(得分:3)
从显示的document开始,
您需要传递硬编码,即'
${fs:fileSize('/usr/foo/myinputdir'/1000) gt 10 }
或
只是参数名称${fs:fileSize(OutputDir/1000) gt 10 }
可能会在工作流程的OutputDir
部分或<config>
文件中指定此.properties
或使用-D
答案 1 :(得分:0)
是的,你可以。事实上,您可以将多个参数与concat函数组合在一起(我认为这有助于解决原始海报的问题)。
例如,如果$ {location}和$ {date}是配置文件中定义的两个参数:
DT[DT2,{print(as.matrix(.SD) %*% diag(c(i.B,i.C)))},by=.EACHI]
[,1] [,2]
[1,] 1.1157764 -0.033349750
[2,] 0.8069216 0.003020009
[,1] [,2]
[1,] -0.09445960 0.2145397
[2,] -0.08039401 2.0253136
[,1] [,2]
[1,] 0.02890673 0.1984297
[2,] -0.77121518 -0.1734435
如果位置和日期之间需要'/',则必须执行此操作:
<decision name="check-directory-exists">
<switch>
<case to="load-directory">
<!-- check if the directory at this location for this date exists -->
${fs:exists(concat(location, date))}
</case>
<!-- The directory doesn't exist, there is nothing to do -->
<default to="end" />
</switch>
</decision>