1
列出Spark中本地可用的所有文件名的最有效方法是什麼?我正在使用Scala API,但是,Python也應該沒問題。使用Scala或Python列出存儲在Hadoop HDFS上的Spark羣集中可用的所有文件?
列出Spark中本地可用的所有文件名的最有效方法是什麼?我正在使用Scala API,但是,Python也應該沒問題。使用Scala或Python列出存儲在Hadoop HDFS上的Spark羣集中可用的所有文件?
import org.apache.hadoop.fs.{FileSystem, FileUtil, Path}
import scala.collection.mutable.Stack
val fs = FileSystem.get(sc.hadoopConfiguration)
var dirs = Stack[String]()
val files = scala.collection.mutable.ListBuffer.empty[String]
val fs = FileSystem.get(sc.hadoopConfiguration)
dirs.push("/user/username/")
while(!dirs.isEmpty){
val status = fs.listStatus(new Path(dirs.pop()))
status.foreach(x=> if(x.isDirectory) dirs.push(x.getPath.toString) else
files+= x.getPath.toString)
}
files.foreach(println)
列出HDFS上的文件不是Spark特有的。只需使用'org.apache.hadoop.fs.FileSystem.listStatus()'。 –
這不會真的工作,但感謝您的提示,我知道要尋找什麼。 – Karusmeister