如何检查给定基本路径的文件是否存在。我为这个方法提供了一个文件列表,例如:file1.snappy,file2,snappy,。。。
我需要检查文件是否存在于给定路径中,例如: hdfs://a/b/c/source/file1.snappy
或者如果文件存在于 hdfs://a/b/c/target/file1.snappy
. 如何更新/修改以下方法以接受 /a/b/c/target/
或者 /a/b/c/source/
作为基本路径并检查文件是否存在?如果存在于源中,则添加到源列表;如果存在于目标中,则添加到目标列表。
val fs = FileSystem.get(sprk.sparkContext.hadoopConfiguration)
def fileExists(fileList:Array[String]) : Boolean = {
var fileNotFound = 0
fileList.foreach{
file => {
if(!fs.exists(new Path(file))) fileNotFound+=1
print("fileList",file)
}
}
if(fileNotFound > 0) {
println(fileNotFound + ": number of files not found probably moved")
false
}
else
true
}
2条答案
按热度按时间bvhaajcl1#
更新的工作代码
hdfs
&s3
.请检查下面的代码。
示例目录
结果
t40tm48m2#
我有一个源目录和目标是这样的下面的例子
尝试使用这种方法进行递归查找
URI.create(... )
在处理s3对象时非常重要(也适用于hdfs/localfs)用法示例:
结果: