Как использовать регулярное выражение в OOZIE?

Я хочу проверить, существует ли файл в указанном месте HDFS.

Мы можем проверить, существует файл или нет в заданном месте HDFS с помощью fs:exists, т.е.

Если имя файла test_25082016, с помощью задания согласования мы можем получить значение даты, т.е. в качестве параметра today в нашем примере.

job.prop

path=/user/cloudera/file/input/test_

в рабочем процессе.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?

пожалуйста, помогите мне в этом заранее спасибо.


person Sai    schedule 25.08.2016    source источник


Ответы (1)


В этом случае мы можем проверить, существует ли файл, используя приведенный ниже код.

<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>
person Sai    schedule 26.08.2016