如何在 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>