2016-08-25 3 views
0

주어진 HDFS 위치에 파일이 존재하는지 확인하고 싶습니다.OOZIE의 정규 표현식 사용 방법은 무엇입니까?

우리는 FS의 도움으로 주어진 HDFS 위치에 존재 여부 파일을 확인할 수는 : 파일 이름이 우리가 날짜 값이 매개 변수 today 같이 즉 얻을 수있는 조정 작업의 도움으로 test_25082016 경우 즉

존재 우리의 예. 예상대로 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> 

에서

job.prop

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

그것은 노력하고 있습니다.

내 경우에는 아래의 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 ... 후 파일 이름을.

는 그 값이

_08.10.06.681.csv 방법이 경우 파일이 oozie을 통해 존재인지 아닌지에 유효성을 검사하는 즉 확인, oozie 워크 플로우에서 정규 표현식을 사용할 수 있습니까?

미리 감사드립니다. 이 경우

답변

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>