h2o ошибка компиляции скала кода не найден объект ai - PullRequest
3 голосов
/ 07 марта 2019

Я пытаюсь скомпилировать и запустить простой код h2o scala.Но когда я делаю пакет sbt, я получаю ошибки.Я что-то упустил в файле sbt

Это мой код h2o scala

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

import ai.h2o.automl.AutoML
import ai.h2o.automl.AutoMLBuildSpec

import org.apache.spark.h2o._

object H2oScalaEg1 {

  def main(args: Array[String]): Unit = {

  val sparkConf1 = new SparkConf().setMaster("local[2]").setAppName("H2oScalaEg1App")

  val sparkSession1 = SparkSession.builder.config(conf = sparkConf1).getOrCreate()

  val h2oContext = H2OContext.getOrCreate(sparkSession1.sparkContext)

  import h2oContext._

  import java.io.File

  import h2oContext.implicits._

  import water.Key

  }

}

И это мой файл sbt.

name := "H2oScalaEg1Name"

version := "1.0"

scalaVersion := "2.11.12"

scalaSource in Compile := baseDirectory.value / ""

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.2.3"

libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"

libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.2.0"

libraryDependencies += "ai.h2o" % "h2o-core" % "3.22.1.3" % "runtime" pomOnly()

Когда я делаю пакет sbt, я получаю эти ошибки

[error] /home/myuser1/h2oScalaEg1/H2oScalaEg1.scala:7:8: not found: object ai

[error] import ai.h2o.automl.AutoML

[error]        ^

[error] /home/myuser1/h2oScalaEg1/H2oScalaEg1.scala:8:8: not found: object ai

[error] import ai.h2o.automl.AutoMLBuildSpec

[error]        ^
[error] /home/myuser1/h2oScalaEg1/H2oScalaEg1.scala:10:25: object h2o is not a member of package org.apache.spark

[error] import org.apache.spark.h2o._
[error]                         ^

[error] /home/myuser1/h2oScalaEg1/H2oScalaEg1.scala:20:20: not found: value H2OContext
[error]   val h2oContext = H2OContext.getOrCreate(sparkSession1.sparkContext)
[error]                    ^


[error] /home/myuser1/h2oScalaEg1/H2oScalaEg1.scala:28:10: not found: value water
[error]   import water.Key
[error]          ^
[error] 5 errors found

Как я могу исправить эту проблему.

Моя версия spark в spark-2.2.3-bin-hadoop2.7

Спасибо,

marrel

1 Ответ

0 голосов
/ 07 марта 2019

pomOnly() в build.sbt указывает обработчикам управления зависимостями, что jar libs / artifacts для этой зависимости не следует загружать и искать только метаданные.

Попробуйте использовать libraryDependencies += "ai.h2o" % "h2o-core" % "3.22.1.3" вместо.

Редактировать 1: Кроме того, я думаю, что вам не хватает (по крайней мере) одной зависимости библиотеки: libraryDependencies += "ai.h2o" % "h2o-automl" % "3.22.1.3"

см .: https://search.maven.org/artifact/ai.h2o/h2o-automl/3.22.1.5/pom

Редактировать 2: Последняя зависимость, которую вам не хватает, это ядро ​​газированной воды: libraryDependencies += "ai.h2o" % "sparkling-water-core_2.11" % "2.4.6" должен сделать трюк.

Вот github газированная вода / ядро ​​/ src / main / scala / org / apache / spark / h2o .

...