2013-04-16 28 views

回答

3

要刪除一個目錄中的文件,而不刪除目錄本身或刪除文件從任何子目錄(即沒有什麼hadoop fs -rm /dir/*),可以使用:

FileSystem fs = dir.getFileSystem(getConf()); 
RemoteIterator<LocatedFileStatus> it = fs.listFiles(dir, false); 
while (it.hasNext()) { 
    fs.delete(it.next().getPath(), false); 
} 
+0

迭代會導致轉的號碼的電話吧?是不是要對內存徵稅? – volcano

+1

它在事物的宏偉計劃中是微不足道的 - 它實際上是由於該通配符,「hadoop fs -rm/dir/*」所做的事情。不要過早地陷入優化,這根本不算稅。 – Quetzalcoatl

+0

嗯,是的謝謝!順便說一句,執行來自java的hadoop shell命令會是一個糟糕的選擇嗎?會不會服務器優化的目的? – volcano

相關問題