2016-10-27 13 views
8

Próbuję uruchomić aplikację samodzielne przy użyciu Scala na Apache iskry oparty na przykład tutaj: http://spark.apache.org/docs/latest/ml-pipeline.html(Spark) object {nazwa} nie jest członkiem pakietu org.apache.spark.ml

Oto mój pełny kod:

import org.apache.spark.ml.classification.LogisticRegression 
import org.apache.spark.ml.linalg.{Vector, Vectors} 
import org.apache.spark.ml.param.ParamMap 
import org.apache.spark.sql.Row 

object mllibexample1 { 
    def main(args: Array[String]) { 
    val spark = SparkSession 
     .builder() 
     .master("local[*]") 
     .appName("logistic regression example 1") 
     .getOrCreate() 


    val training = spark.createDataFrame(Seq(
     (1.0, Vectors.dense(0.0, 1.1, 0.1)), 
     (0.0, Vectors.dense(2.0, 1.0, -1.0)), 
     (0.0, Vectors.dense(2.0, 1.3, 1.0)), 
     (1.0, Vectors.dense(0.0, 1.2, -0.5)) 
    )).toDF("label", "features") 

    val lr = new LogisticRegression() 

    println("LogisticRegression parameters:\n" + lr.explainParams() + "\n") 

    lr.setMaxIter(100) 
     .setRegParam(0.01) 

    val model1 = lr.fit(training) 

    println("Model 1 was fit using parameters: " + model1.parent.extractParamMap) 
    } 
} 

Zależności w build.sbt:

name := "example" 
version := "1.0.0" 
scalaVersion := "2.11.8" 
libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % "2.0.1", 
    "org.apache.spark" %% "spark-sql" % "2.0.1", 
    "org.apache.spark" %% "spark-mllib-local" % "2.0.1", 
    "com.github.fommil.netlib" % "all" % "1.1.2" 
) 

jednak po uruchomieniu programu w SBT skorupkach, mam następujący błąd:

[info] Compiling 1 Scala source to /dataplatform/example/target/scala-2.11/classes... 
[error] /dataplatform/example/src/main/scala/mllibexample1.scala:1: object classification is not a member of package org.apache.spark.ml 
[error] import org.apache.spark.ml.classification.LogisticRegression 
[error]       ^
[error] /dataplatform/example/src/main/scala/mllibexample1.scala:3: object param is not a member of package org.apache.spark.ml 
[error] import org.apache.spark.ml.param.ParamMap 
[error]       ^
[error] /dataplatform/example/src/main/scala/mllibexample1.scala:8: not found: value SparkSession 
[error]  val spark = SparkSession 
[error]    ^
[error] /dataplatform/example/src/main/scala/mllibexample1.scala:22: not found: type LogisticRegression 
[error]  val lr = new LogisticRegression() 

Mogę z powodzeniem uruchomić ten kod w iskrowej interaktywnej powłoce. Czy coś pominąłem w pliku * .sbt?

Dzięki Bayu

+0

możliwe duplikat http://stackoverflow.com/questions/27438353/mllib-dependency-error – Shankar

Odpowiedz

13

Przegapiłeś zależność MLlib:

"org.apache.spark" %% "spark-mllib" % "2.0.1" 

lokalny nie wystarczy.

+0

Dzięki @LostInOverflow! to działa :) – Yusata

+0

Otrzymuję to, gdy próbuję go zaimportować: [ostrzeżenie] \t :: org.apache.spark # spark-mllib_2.12; 2.0.1: not found – user1761806

0

Miałem ten sam problem i mam projekt Maven Scala.

Użyłem poniższej zależności Mavena. Po dodaniu tej zależności programu, problem został rozwiązany.

 <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-mllib_2.11</artifactId> 
      <version>2.0.2</version> 
     </dependency 
Powiązane problemy