apache-spark - Databricks 连接:sparkContext.wholeTextFiles
问题描述
我已经设置了 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:///
我觉得沿着满足的道路以及以某种方式未包含在 jar 中的每个依赖项可能不是最佳选择。
我想知道是否有人有过类似的经历,如果有的话——他们是如何解决这个问题的。
如果有必要,我愿意提供更多背景信息。
谢谢!
解决方案
推荐阅读
- c - C中未初始化指针的值
- api - odoo 8 中的问题显示警告消息
- javascript - linqts - 按多个属性分组
- excel - 将公式转换为终极单元格引用 [IndexMatch、Offset、Indirect]
- javascript - 如何使用 yup 验证嵌套对象所需
- apache-nifi - Apache NiFi:将 SQL 行合并到 Json
- docker - Nginx Rverse Proxy to Tomcat(简单是......?否)
- postgresql - 带有 postgres-xl 的 zombodb:“zombodb.so:未定义符号:session_auth_is_superuser”
- scikit-learn - 如何在 sklearn-crfsuite 中取回不正确的 NER 预测
- database - 为什么下表是第二范式?