运行 Jupyter scala notebook 中的 h2o

Running h2o in Jupyter scala notebook

我正在尝试在具有 scala 内核的 Jupyter 笔记本上获取 h2o 运行,但到目前为止没有成功。也许有人可以提示我可能出了什么问题?我现在正在执行的代码是

classpath.add("ai.h2o" % "sparkling-water-core_2.10" % "1.6.5")

import org.apache.spark.h2o._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._

val conf = new SparkConf().setAppName("appName").setMaster("local")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val h2oContext = new H2OContext(sc).start()

它在最后一行失败并出现错误

java.lang.NoClassDefFoundError: water/H2O
....

并打印出异常

java.lang.RuntimeException: Cannot launch H2O on executors: numOfExecutors=1, executorStatus=(driver,false) (Cannot launch H2O on executors: numOfExecutors=1, executorStatus=(driver,false))
org.apache.spark.h2o.H2OContextUtils$.startH2O(H2OContextUtils.scala:169)
org.apache.spark.h2o.H2OContext.start(H2OContext.scala:214)

如果您使用 Toree,

在/usr/local/share/jupyter/kernels/apache_toree_scala/kernel.json

您应该在 __TOREE_SPARK_OPTS__ 上添加 --packages ai.h2o:sparkling-water-core_2.10:1.6.6 ,例如

"__TOREE_SPARK_OPTS__": "--master local[*] --executor-memory 12g --driver-memory 12g --packages ai.h2o:sparkling-water-core_2.10:1.6。 6",

然后,sc 在您创建笔记本时创建。所以你不需要重新创建 sc。