检查blob存储中是否存在文件夹并添加到列表中

jq6vz3qz  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(325)

我正在databricks中创建一个函数,以检查azure blob存储中是否存在文件夹:

import java.io.File

def checkFolder(paths: List[String]): Unit = {

  for (f <- paths) {
    try
      {   
        var pathCheck = dbutils.fs.ls(f) 
       }
  catch {
    case ex: Exception => {
      println("Folder does not exists: " + f)
      }
    }
  }
}

我想添加列表中存在的文件夹,以便可以读取这些路径中的数据!我还想添加其他列表中不存在的路径。
我该怎么做?

wnavrhmk

wnavrhmk1#

尝试以下操作:

val (exist, doesnt) = paths.map {
  f => try {
    dbutils.fs.ls(f)
    (f, true)
  } catch {
    case _: Exception => 
      (f, false)
  }
}.partition(_._2)

这将为您提供两种类型的序列 (String, Boolean) 对于现有文件和非现有文件,可以使用以下方法从中提取文件路径:

exist.map(_._1)
doesnt.map(_._1)

相关问题