0
我需要使用Java/Scala程序在HDFS中移動對應於給定正則表達式的多個文件。例如,我必須將名稱爲*.xml
的所有文件從文件夾a
移動到文件夾b
。HDFS:使用Java/Scala API移動多個文件
使用外殼命令我可以使用以下:
bin/hdfs dfs -mv a/*.xml b/
我可以FileSystem
類使用Java API,用下面的代碼(Scala語言)移動單個文件,使用rename
方法:
// Prepare initial configuration
val conf = new Configuration()
conf.set("fs.defaultFS", "hdfs://hdfs:9000/user/root")
val fs = FileSystem.get(conf)
// Move a single file
val ok = fs.rename(new Path("a/file.xml"), new Path("b/file.xml"));
據我所知,Path
類表示一個URI。那麼,我不能用以下方式:
val ok = fs.rename(new Path("a/*.xml"), new Path("b/"));
有沒有辦法通過Java/Scala API在HDFS中移動一組文件?
謝謝你的回答。實現我所需要的另一種方法是使用接受「路徑」和「路徑過濾器」的方法'listStatus',它允許您過濾列表的結果。 –
我們在哪裏可以找到我們可以使用fs執行的命令列表?任何指針,如fs.rename fs.globStatus等等。在此先感謝 – Dileep
我在尋找正確的鏈接[鏈接](https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/fs/FileSystem.html)? – Dileep