如何在 OOZIE 中使用正则表达式?
How to use Regular expression in OOZIE?
我想检查文件是否存在于给定的 HDFS 位置。
我们可以在 fs:exists 的帮助下检查文件是否存在于给定的 HDFS 位置,即
如果文件名是 test_25082016
,在协调工作的帮助下,我们可以获得日期值,即在我们的示例中作为参数 today
。
job.prop
path=/user/cloudera/file/input/test_
在workflow.xml
<decision name="CheckFile">
<switch>
<case to="nextOozieTask">
${fs:exists(concat(concat(nameNode, path),today))}
</case>
<case to="nextOozieTask1">
${fs:exists(concat(concat(nameNode, path),yesterday))}
</case>
<default to="MailActionFileMissing" />
</switch> </decision>
它按预期工作。
但在我的例子中,我的 HDFS 位置中有文件名,如下所示。
示例:test_25082016_08.10.06.681.csv ,test_24082016_08.13.16.681.csv
如何检查这种类型的文件名,即日期值之后,即_08.10.06.681.csv
、_08.13.16.681.csv
...等等
是否可以在 oozie 工作流中使用正则表达式来检查这些值,即 _08.10.06.681.csv
在这种情况下如何通过 oozie 验证文件是否存在?
请提前帮我解决这个问题。
在这种情况下,我们可以使用以下代码检查文件是否存在
<decision name="CheckFile">
<switch>
<case to="nextOozieTask">
${fs:exists(concat(concat(concat(concat(nameNode, path),today),'*"),'.csv'))}
</case>
<case to="nextOozieTask1">
${fs:exists(concat(concat(nameNode, path),yesterday))}
</case>
<default to="MailActionFileMissing" />
</switch> </decision>
我想检查文件是否存在于给定的 HDFS 位置。
我们可以在 fs:exists 的帮助下检查文件是否存在于给定的 HDFS 位置,即
如果文件名是 test_25082016
,在协调工作的帮助下,我们可以获得日期值,即在我们的示例中作为参数 today
。
job.prop
path=/user/cloudera/file/input/test_
在workflow.xml
<decision name="CheckFile">
<switch>
<case to="nextOozieTask">
${fs:exists(concat(concat(nameNode, path),today))}
</case>
<case to="nextOozieTask1">
${fs:exists(concat(concat(nameNode, path),yesterday))}
</case>
<default to="MailActionFileMissing" />
</switch> </decision>
它按预期工作。
但在我的例子中,我的 HDFS 位置中有文件名,如下所示。
示例:test_25082016_08.10.06.681.csv ,test_24082016_08.13.16.681.csv
如何检查这种类型的文件名,即日期值之后,即_08.10.06.681.csv
、_08.13.16.681.csv
...等等
是否可以在 oozie 工作流中使用正则表达式来检查这些值,即 _08.10.06.681.csv
在这种情况下如何通过 oozie 验证文件是否存在?
请提前帮我解决这个问题。
在这种情况下,我们可以使用以下代码检查文件是否存在
<decision name="CheckFile">
<switch>
<case to="nextOozieTask">
${fs:exists(concat(concat(concat(concat(nameNode, path),today),'*"),'.csv'))}
</case>
<case to="nextOozieTask1">
${fs:exists(concat(concat(nameNode, path),yesterday))}
</case>
<default to="MailActionFileMissing" />
</switch> </decision>