2016-08-25 3 views
0

特定のHDFSの場所にファイルが存在するかどうかをチェックしたいと思います。OOZIEで正規表現を使用するには?

我々はFSの助けを借りて、与えられたHDFSの場所に存在するか、いないファイルを確認することができます:ファイル名は、我々は、日付の値がパラメータtodayのようにすなわち得ることができコーディネートジョブの助けを借りてtest_25082016である場合、すなわち

存在します私たちの例。

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.13.16.681.csv、すなわち日付値、すなわち_08.10.06.681.csv後にファイル名をこの種類を確認する方法。

は、それがこれらの値をチェックするために、oozieワークフローで正規表現を使用することが可能です。この場合、ファイルに検証する方法_08.10.06.681.csv

をすなわち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> 
関連する問題