【发布时间】:2020-02-28 15:35:57
【问题描述】:
我已设置 Databricks Connect,以便我可以在本地开发并获得 Intellij 好东西,同时利用 Azure Databricks 上大型 Spark 集群的强大功能。
当我想读取或写入 Azure Data Lake 时
spark.read.csv("abfss://blah.csv)
我得到以下内容
xception in thread "main" java.io.IOException: No FileSystem for scheme: abfss
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2586)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2593)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2632)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2614)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:547)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:545)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
at scala.collection.immutable.List.foreach(List.scala:392)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
at scala.collection.immutable.List.flatMap(List.scala:355)
at org.apache.spark.sql.execution.datasources.DataSource.org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary(DataSource.scala:545)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:359)
at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211)
at org.apache.spark.sql.DataFrameReader.csv(DataFrameReader.scala:618)
at org.apache.spark.sql.DataFrameReader.csv(DataFrameReader.scala:467)
来自this 我的印象是,在本地引用 Azure Data Lake 不会有问题,因为代码是远程执行的。显然我错了。
有没有人能解决这个问题?
【问题讨论】:
-
看起来您没有运行 databricks connect 并且只是在本地执行 pyspark。你也安装了 pyspark 吗?
-
我实际上正在运行 Scala 代码。我没有本地安装任何火花。但是我确实指定我正在启动一个本地 SparkSession。这是教程中指定的。那是错的吗?另外运行databricks connect意味着什么?它们只是项目中导入的一组jar,对吧?
-
这是一个python库,必须先安装和配置。然后,您可以导入 jars 而不是通常的 spark 库。 docs.databricks.com/dev-tools/databricks-connect.html
-
是的。我已经按照这个教程做了所有的事情。至少我是这么认为的。你有什么建议?
-
@simon_dmorias 如果我执行
databricks-connect test命令,我可以在数据块上的 Spark UI 中看到输出。这意味着我能够连接到集群。问题是如何绕过abfss路径的解析。我希望这是可能的。
标签: apache-spark azure-databricks databricks-connect