Scala 如何根据元素名称从列表中获取元素?
我有一个包含子路径的路径,每个子路径包含文件Scala 如何根据元素名称从列表中获取元素?,scala,list,apache-spark,Scala,List,Apache Spark,我有一个包含子路径的路径,每个子路径包含文件 path="/data" 我实现了两个函数,从每个子路径获取csv文件 def getListOfSubDirectories(directoryName: String): Array[String] = { (new File(directoryName)) .listFiles .filter(_.isDirectory) .map(_.getName) } def getLis
path="/data"
我实现了两个函数,从每个子路径获取csv文件
def getListOfSubDirectories(directoryName: String): Array[String] = {
(new File(directoryName))
.listFiles
.filter(_.isDirectory)
.map(_.getName)
}
def getListOfFiles(dir: String, extensions: List[String]): List[File] = {
val d = new File(dir)
d.listFiles.filter(_.isFile).toList.filter { file =>
extensions.exists(file.getName.endsWith(_))
}
}
每个子路径包含5个csv文件:contextfile.csv、datafile.csv、datesfiles.csv、errors.csv、testfiles,因此我的问题是,我将在一个单独的数据框中处理每个文件。如何获取正确数据框的文件名,例如,我想获取与上下文相关的文件名(即contextfile.csv)。我是这样工作的,但是每次迭代的逻辑和排名都会发生变化
val dir=getListOfSubDirectories(path)
for (sup_path <- dir)
{ val Files = getListOfFiles(path + "//" + sup_path, List(".csv"))
val filename_context = Files(1).toString
val filename_datavalue = Files(0).toString
val filename_error = Files(3).toString
val filename_testresult = Files(4).toString
val dir=getListOfSubDirectories(路径)
对于(sup_path我只需要一个简单的过滤器就可以解决它
val filename_context = Files.filter(f =>f.getName.contains("context")).last.toString
val filename_datavalue = Files.filter(f =>f.getName.contains("data")).last.toString
val filename_error = Files.filter(f =>f.getName.contains("error")).last.toString
val filename_testresult = Files.filter(f =>f.getName.contains("test")).last.toString