清单星火集群提供的所有文件存储在使用的Scala或Python Hadoop的HDFS?(Listi

2019-10-20 01:55发布

什么是最有效的方式列出所有的文件名是在本地提供的Spark? 我使用Scala的API,但是,巨蟒也应该罚款。

Answer 1:

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)


文章来源: Listing all files available in Spark cluster stored on Hadoop HDFS using Scala or Python?