Сбой соединения блоков данных с отсутствием файловой системы по схеме: abfss - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть настройка Databricks Connect , чтобы я мог развиваться локально и получать вкусности Intellij, в то же время используя мощь большого кластера Spark на Azure Databricks.

Когда Я хочу читать или писать в Azure Озеро данных 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)

От этого У меня сложилось впечатление, что ссылаться на него не составит труда Azure Озеро данных локально, поскольку код выполняется удаленно. Видимо я ошибаюсь.

У кого-нибудь есть решение этой проблемы?

1 Ответ

0 голосов
/ 02 марта 2020

Причиной проблемы было то, что я хотел иметь исходники Spark и иметь возможность выполнять рабочие нагрузки на Databricks. К сожалению, в банках связей данных нет источников. Это означает, что мне нужно вручную импортировать их в проект. И вот в чем дело - в точности, как сказано в документах :

... If this is not possible, make sure that the JARs you add are at the front of the classpath. In particular, they must be ahead of any other installed version of Spark (otherwise you will either use one of those other Spark versions and run locally ...

Я так и сделал.

enter image description here

Теперь я могу испечь свой пирог и съесть его!

Единственная проблема заключается в том, что если я добавлю новые зависимости, мне придется это переупорядочить еще раз.

...