2017-01-06 34 views
0

我想通過以下方法來列出在EMR HDFS目錄中的所有文件:列出文件斯卡拉EMR HDFS(CSV文件丟失)

val directory = new File(directoryPath) 
val fileStatusListIterator: RemoteIterator[LocatedFileStatus] = FileUtils.fs.listFiles(new Path(directoryPath), true) 
while (fileStatusListIterator.hasNext) { 
    val fileStatus = fileStatusListIterator.next 
    if (fileStatus.isFile) { 
    log.info(s"Iterator File Path: ${fileStatus.getPath}") 
    } 
} 

我的問題:它是上市一切,除了CSV文件。

+0

你確定那些「csv文件」實際上不是_directories_?如果它們是由一些分佈式處理引擎(MapReduce/Spark)創建的,它們可能是其中包含「部分」文件的目錄,並且您的代碼會跳過目錄。 –

+0

我刪除了這個條件,結果沒有任何CSV文件。 –

回答

1

我找到了原因。因爲我正好在上市之前下載這個csv文件。這意味着文件無法按時從迭代器捕獲。因此,我必須使用:

Future.Await(Downloading,Duration.Inf) 

所以它會被迫等到下載完成後纔會繼續。