【问题标题】:check if folder exists in blob storage and add to a list检查 blob 存储中是否存在文件夹并添加到列表中
【发布时间】:2021-06-16 13:35:49
【问题描述】:

我正在 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)
      }
    }
  }
}

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

我该怎么做?

【问题讨论】:

    标签: scala apache-spark databricks azure-blob-storage


    【解决方案1】:

    试试这样的:

    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)
    

    【讨论】:

    • 这行得通,谢谢...你能解释一下这是做什么的,因为我是 spark 和 scala 的新手!
    • 基本上是通过路径列表进行的,并将其转换为对列表(路径,存在/不存在),然后通过存在标志划分为两个集合
    猜你喜欢
    • 2013-07-05
    • 2011-02-08
    • 2016-11-12
    • 2011-10-14
    • 2017-11-02
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多