scala - SparkSession 未使用杏仁 Jupyter 初始化
问题描述
我正在尝试通过 docker 或从https://almond.sh在线启动 Almond Jupiter 。在 spark.ipynb 镜像中,与 NotebookSparkSession 的行出现错误
import $ivy.`org.apache.spark::spark-sql:2.4.0`
import $ivy.`sh.almond::almond-spark:0.3.0`
import org.apache.log4j.{Level, Logger}
Logger.getLogger("org").setLevel(Level.OFF)
import org.apache.spark.sql._
val spark = {
NotebookSparkSession.builder()
.master("local[*]")
.getOrCreate()
}
docker有一个例外:
java.lang.NoSuchMethodError: coursier.package$Resolution$.apply$default$13()Lscala/collection/immutable/Map;
org.apache.spark.sql.ammonitesparkinternals.SparkDependencies$.sparkJars(SparkDependencies.scala:134)
org.apache.spark.sql.ammonitesparkinternals.AmmoniteSparkSessionBuilder.getOrCreate(AmmoniteSparkSessionBuilder.scala:234)
org.apache.spark.sql.almondinternals.NotebookSparkSessionBuilder.getOrCreate(NotebookSparkSessionBuilder.scala:62)
我尝试使用具有相同 spark.ipynb 的在线版本,但有一个例外
java.lang.AssertionError: assertion failed:
NotebookSparkSession.builder()
while compiling: cmd3.sc
during phase: superaccessors
library version: version 2.12.8
compiler version: version 2.12.8
reconstructed args: -nowarn -Yresolve-term-conflict:object
last tree to typer: This(class cmd3)
tree position: line 19 of cmd3.sc
tree tpe: cmd3.this.type
symbol: final class cmd3 in package $sess
symbol definition: final class cmd3 extends Serializable (a ClassSymbol)
symbol package: ammonite.$sess
symbol owners: class cmd3
call site: class Helper in class cmd3 in package $sess
解决方案
spark 2.4.0 的 scala 版本 (2.12.8) 不匹配问题的明确指示。请参阅 spark 2.4 的发行说明
尝试降低版本,即 2.11(Spark 在 Java 8+、Python 2.7+/3.4+ 和 R 3.1+ 上运行。对于 Scala API,Spark 2.4.0 使用 Scala 2.11。您需要使用兼容的 Scala 版本(2.11 .x). )
或者我认为您需要使用 spark 2.4.3 来支持 scala 2.12.8,如文档所述。
推荐阅读
- google-authentication - 如何修复 Odoo v13 中的 Google Authentication DB 访问问题
- tcl - llength 没有为列表空元素和非空元素返回正确的大小
- java - 我应该在哪里调用片段中的 Rest API
- javascript - 根据这两个属性对不可变的 js 数据进行排序
- php - 显示数字最高的行,即使它是相同的
- javascript - 寻找 Youtube 配额端点
- sql - EF 存储过程。将 SELECT 中的子查询映射到 List 属性
- python-3.x - 如何使用python将女性声音转换为男性声音
- python - 如何使用 Python 类和连接方法导入 GUI 类
- mule - 根据项目匹配Dataweave 2.0计算Json中的元素数