2017-09-08 14 views
0

私はJavaでmllib apache sparkの学習を始めました。私は公式サイトから2.1.1のsparkの文書に従っています。私はspark-2.1.1-bin-hadoop2.7を私のubuntu 14.04 ltsにインストールしました。私はこのコードを実行しようとしています。java apache spark mllib

public class JavaLogisticRegressionWithElasticNetExample { 
public static void main(String[] args) { 
    SparkSession spark = SparkSession.builder().appName("JavaLogisticRegressionWithElasticNetExample") .master("local[*]").getOrCreate(); 
    // $example on$ 
    // Load training data 
    Dataset<Row> training = spark.read().format("libsvm") 
      .load("data/mllib/sample_libsvm_data.txt"); 

    LogisticRegression lr = new LogisticRegression() 
      .setMaxIter(10) 
      .setRegParam(0.3) 
      .setElasticNetParam(0.8); 

    // Fit the model 
    LogisticRegressionModel lrModel = lr.fit(training); 

    // Print the coefficients and intercept for logistic regression 
    System.out.println("Coefficients: " 
      + lrModel.coefficients() + " Intercept: " + lrModel.intercept()); 

    // We can also use the multinomial family for binary classification 
    LogisticRegression mlr = new LogisticRegression() 
      .setMaxIter(10) 
      .setRegParam(0.3) 
      .setElasticNetParam(0.8) 
      .setFamily("multinomial"); 

    // Fit the model 
    LogisticRegressionModel mlrModel = mlr.fit(training); 

    // Print the coefficients and intercepts for logistic regression with multinomial family 
    System.out.println("Multinomial coefficients: " + lrModel.coefficientMatrix() 
      + "\nMultinomial intercepts: " + mlrModel.interceptVector()); 
    // $example off$ 

    spark.stop(); 
} 

}

私は私のシステムで火花2.1.1-binの-hadoop2.7をインストールしました。 私が持っているのpom.xmlファイルが

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-sql_2.11</artifactId> 
     <version>2.1.1</version> 
     <scope>provided</scope> 
    </dependency> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-mllib_2.10</artifactId> 
    <version>2.1.1</version> 
</dependency> 
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib-local_2.10 --> 
<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-mllib-local_2.10</artifactId> 
    <version>2.1.1</version> 
</dependency> 

ですが、私はあなたが同じプログラムでのScalaの異なるバージョンを使用している時にエラーこの種の問題が発生し、この例外

17/09/08 16:42:19 INFO SparkEnv: Registering OutputCommitCoordinator Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$; at org.apache.spark.ui.jobs.AllJobsPage.(AllJobsPage.scala:39) at org.apache.spark.ui.jobs.JobsTab.(JobsTab.scala:38) at org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:65) at org.apache.spark.ui.SparkUI.(SparkUI.scala:82) at org.apache.spark.ui.SparkUI$.create(SparkUI.scala:220) at org.apache.spark.ui.SparkUI$.createLiveUI(SparkUI.scala:162) at org.apache.spark.SparkContext.(SparkContext.scala:452) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2320) at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868) at org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860) at JavaLogisticRegressionWithElasticNetExample.main(JavaLogisticRegressionWithElasticNetExample.java:12) 17/09/08 16:42:19 INFO DiskBlockManager: Shutdown hook called 17/09/08 16:42:19 INFO ShutdownHookManager: Shutdown hook called 17/09/08 16:42:19 INFO ShutdownHookManager: Deleting directory /tmp/spark-8460a189-3039-47ec-8d75-9e0ca8b4ee5d 17/09/08 16:42:19 INFO ShutdownHookManager: Deleting directory /tmp/spark-8460a189-3039-47ec-8d75-9e0ca8b4ee5d/userFiles-9b6994eb-1376-47a3-929e-e415e1fdb0c0

+1

だから、問題とは何ですか? – Derlin

+0

例外が発生しています17/09/08 16:42:19 INFO SparkEnv:OutputCommitCoordinatorを登録しています スレッド "main"の例外java.lang.NoSuchMethodError:scala.Predef $。$ scope()Lscala/xml/TopScope $; \t(org.apache.spark.ui.jobs.AllJobsPage) (AllJobsPage.scala:39) –

答えて

0

を取得しています。実際、あなたの依存関係(あなたのpom.xml)には、スカラ2.10のライブラリとスカラ2.11のライブラリがあります。

spark-sql_2.11の代わりにspark-sql_2.10を使用すると、うまくいく(またはmllibのバージョンを2.11に変更する)。

+0

@Derlinに感謝します。 –

関連する問題