我正在尝试通过以下方法列出emr hdfs上某个目录中的所有文件:
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文件之外的所有文件。
发布于 2017-01-06 16:52:21
我找到原因了。因为我正好在列表之前下载了这个csv文件。这意味着文件不能及时从迭代器中被捕获。因此,我必须使用:
Future.Await(Downloading,Duration.Inf)
因此,它将被强制等待,直到下载完成,然后它将继续。
https://stackoverflow.com/questions/41507410
复制相似问题