通过scala获取azure data lake中存储的文件名列表

通过scala获取azure data lake中存储的文件名列表,scala,apache-spark,apache-spark-sql,azure-data-lake,databricks,Scala,Apache Spark,Apache Spark Sql,Azure Data Lake,Databricks,我需要一份来自databricks笔记本上azure data lake store的文件列表。 我有一个scala脚本,但我认为它只是从本地文件系统访问文件 val path = "adl://datalakename.azuredatalakestore.net" import java.io._ def getListOfFiles(dir: String): List[String] = { val file = new File(dir) file.listFiles.f

我需要一份来自databricks笔记本上azure data lake store的文件列表。 我有一个scala脚本,但我认为它只是从本地文件系统访问文件

val path = "adl://datalakename.azuredatalakestore.net"
import java.io._

def getListOfFiles(dir: String): List[String] = {
   val file = new File(dir)
   file.listFiles.filter(_.isFile)
      .filter(_.getName.endsWith(".dat"))
      .map(_.getPath).toList
}
getListOfFiles(path + "/folder/subfolder/")
但它无法工作,并抛出类似-java.lang.NullPointerException的异常错误
python/scala中的任何建议或帮助

如果您正在使用Azure Databricks,您可以使用dbutils:

// Access Azure Data Lake Store
spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("dfs.adls.oauth2.client.id", "xxx)
spark.conf.set("dfs.adls.oauth2.credential", "xxx")
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.windows.net/xxx/oauth2/token")

val path="adl://datalakename.azuredatalakestore.net"
val filelist=dbutils.fs.ls(path)
print(filelist)
有关更多信息,请键入:
dbutils.fs.help

您不能使用标准IO API访问分布式Azure文件系统。是的,我知道了,但我仍然不知道哪个库或任何方法用于访问我笔记本上的azure文件系统。你知道dbutils.fs的导入吗?我无法使用import com.databricks.dbutils_v1.DBUtilsHolder.dbutilsif您在databricks中工作,则无需导入任何内容。它是运行时的一部分将文件转换为List val文件:List[String]=dbutils.fs.lspath.map\uux.path.toList