在Databricks中,检查路径是否存在

时间:2018-10-30 12:11:57

标签: csv exception path load databricks

我正在从datalake存储中读取CSV文件,因为我具有多个路径,但是如果不存在任何路径,它将给出异常。我想避免这种期望。

2 个答案:

答案 0 :(得分:1)

我认为,如果要检查多个路径,则如果一个路径不存在,检查将失败。也许您可以尝试其他方法。

对于给定的示例,如果要子选择子文件夹,则可以尝试以下操作。

读取给定目录的子目录:

# list all subfolders and files in directory demo
dir = dbutils.fs.ls ("/mnt/adls2/demo")

过滤掉相关的子目录:

pathes = ''

for i in range (0, len(dir)):
  subpath = dir[i].path
  if '/corr' in subpath or '/deci' in subpath and subpath.startswith ('dbfs:/'): # select dirs to read 
    pathes =  pathes + (dir[i].path) + ' '  

# convert the string to a list 
pathes = list(pathes.split())

使用结果列表读取数据框:

df = (spark.read
  .json(pathes))

答案 1 :(得分:0)

其中path是一个特定变量,您可以用来检查它是否存在(标量):

dbutils.fs.ls("/mnt").map(_.name).contains(s"$path/")