【发布时间】:2017-10-22 11:48:50
【问题描述】:
我想在下面的代码中使用 Spark MLlib 的 org.apache.spark.mllib.tree.DecisionTree,但编译失败。
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.DecisionTreeClassifier
import org.apache.spark.ml.classification.DecisionTreeClassificationModel
import org.apache.spark.ml.feature.{StringIndexer, IndexToString, VectorIndexer}
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.mllib.tree.DecisionTree
import org.apache.spark.mllib.tree.model.DecisionTreeModel
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.sql.SparkSession
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val data = sqlContext.read.format("csv").load("C:/spark/spark-2.1.0-bin-hadoop2.7/data/mllib/airlines.txt")
val df = sqlContext.read.csv("C:/spark/spark-2.1.0-bin-hadoop2.7/data/mllib/airlines.txt")
val dataframe = sqlContext.createDataFrame(df).toDF("label");
val splits = data.randomSplit(Array(0.7, 0.3))
val (trainingData, testData) = (splits(0), splits(1))
val numClasses = 2
val categoricalFeaturesInfo = Map[Int, Int]()
val impurity = "gini"
val maxDepth = 5
val maxBins = 32
val model = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo,impurity, maxDepth, maxBins)
编译失败并显示以下错误消息:
:44: 错误:重载方法值 trainClassifier 替代品:(输入: org.apache.spark.api.java.JavaRDD[org.apache.spark.mllib.regression.LabeledPoint],numClasses: Int,categoricalFeaturesInfo:java.util.Map[Integer,Integer],杂质: 字符串,maxDepth:整数,maxBins: Int)org.apache.spark.mllib.tree.model.DecisionTreeModel
(输入: org.apache.spark.rdd.RDD[org.apache.spark.mllib.regression.LabeledPoint],numClasses: 诠释,分类特征信息: scala.collection.immutable.Map[Int,Int],杂质:字符串,最大深度: Int,maxBins: Int)org.apache.spark.mllib.tree.model.DecisionTreeModel 不能应用于 (org.apache.spark.sql.Dataset[org.apache.spark.sql.Row], Int, scala.collection.immutable.Map[Int,Int], String, Int, Int) val model = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo,impurity, maxDepth, maxBins)
【问题讨论】:
-
我在运行上述代码时收到此错误“使用替代方法重载方法值 trainClassifier”。如果能解决这个问题就好了。
标签: scala apache-spark apache-spark-sql apache-spark-mllib decision-tree