【问题标题】:Why does import ...RandomForest give "object RandomForest is not a member of package org.apache.spark.mllib.tree"?为什么 import ...RandomForest 给出“对象 RandomForest 不是包 org.apache.spark.mllib.tree 的成员”?
【发布时间】:2016-04-11 05:39:33
【问题描述】:

我在 shell 中使用了 Random Forest 的 spark 实现,这个导入运行良好:

import org.apache.spark.mllib.tree.RandomForest

但是,当我尝试将其编译为独立文件时,它会失败。确切的错误是:

5: object RandomForest is not a member of package org.apache.spark.mllib.tree

我在我的 sbt 文件中也包含了 mllib,所以有人可以告诉我这个错误出现在哪里吗?我的代码:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.mllib.tree.RandomForest

我的 sbt 文件:

name := "churn"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies ++= Seq(
  "org.apache.spark"  % "spark-core_2.10"              % "1.5.2" % "provided",
  "org.apache.spark"  % "spark-mllib_2.10"             % "1.5.2"
  )

编辑:

My-MBP:Churn admin$ sbt 'show libraryDependencies'
[info] Set current project to churn (in build file:/Users/admin/Desktop/Churn/)
[info] List(org.scala-lang:scala-library:2.10.4, org.apache.spark:spark-core_2.10:1.1.0, org.apache.spark:spark-mllib_2.10:1.1.0)
My-MBP:Churn admin$ sbt scalaVersion
[info] Set current project to churn (in build file:/Users/admin/Desktop/Churn/)
[info] 2.10.4

【问题讨论】:

    标签: scala apache-spark sbt


    【解决方案1】:

    tl;dr 使用 Spark 1.2.0 或更高版本。

    根据 GitHub the first version that supports Random Forest is 1.2.0org/apache/spark/mllib/tree/RandomForest.scala 的历史记录(查看文件被标记的标签)。

    即使您已经表明您的 build.sbt 声明了 1.5.2sbt 'show libraryDependencies' 的输出并没有像它所说的那样确认:

    org.apache.spark:spark-mllib_2.10:1.1.0

    1.1.0 是您在项目中使用的 Spark MLlib 的有效版本。该版本不支持随机森林。

    【讨论】:

      猜你喜欢
      • 2015-09-15
      • 1970-01-01
      • 2015-03-11
      • 2012-04-24
      • 2016-05-06
      • 2013-02-02
      • 2018-08-11
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多