Databricks-connect: sparkContext.wholeTextFiles - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть настройка databricks-connect версии 5.5.0. Это время выполнения включает Scala 2.11 и Spark 2.4.3. Весь код Spark, который я написал, был выполнен правильно и без проблем, пока я не попытался вызвать sparkContext.wholeTextFiles. Я получаю следующую ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: shaded/databricks/v20180920_b33d810/com/google/common/base/Preconditions
    at shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.ensureAuthority(AzureBlobFileSystem.java:775)
    at shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.initialize(AzureBlobFileSystem.java:94)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.setInputPaths(FileInputFormat.java:500)
    at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.setInputPaths(FileInputFormat.java:469)
    at org.apache.spark.SparkContext$$anonfun$wholeTextFiles$1.apply(SparkContext.scala:997)
    at org.apache.spark.SparkContext$$anonfun$wholeTextFiles$1.apply(SparkContext.scala:992)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
    at org.apache.spark.SparkContext.withScope(SparkContext.scala:820)
    at org.apache.spark.SparkContext.wholeTextFiles(SparkContext.scala:992)
    ...
Caused by: java.lang.ClassNotFoundException: shaded.databricks.v20180920_b33d810.com.google.common.base.Preconditions
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
    ... 20 more

Одной из попыток решения проблемы был переход на последнюю версию среды выполнения Databricks, которая на момент написания этой статьи составляла 6,5. Это не помогло. Я продолжил возвращаться к версиям - 6.4 и 6.3 - так как они используют разные версии Spark, но безрезультатно.

Еще одна вещь, которую я пробовал, это добавление "com.google.guava" % "guava" % "23.0" в качестве зависимости от моего build.sbt. Это само по себе приводит к ошибкам вроде:

Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: abfss://abc-fs@cloud.dfs.core.windows.net/paths/something, expected: file:///

Я чувствую, что идти по пути удовлетворения и любой зависимости, которая так или иначе не включена в банку, может быть не лучшим вариантом.

Интересно, был ли у кого-то подобный опыт, и если да, то как они решили это?

Я хочу дать больше контекста, если это необходимо.

Спасибо!

...