2016-11-24 82 views
0

所以我用这样的代码:星火决策树无法解决trainClassifier方法

DecisionTree.trainClassifier((org.apache.spark.api.java.JavaRDD<LabeledPoint>)dtTraining, numClasses.intValue(), (java.util.Map<Integer,Integer>) categoricalFeaturesInfo, 
        impurity, maxDepth.intValue(), maxBins.intValue()); 

但有编译错误:

[ERROR] method org.apache.spark.mllib.tree.DecisionTree.trainClassifier(org.apache.spark.rdd.RDD<org.apache.spark.mllib.regression.LabeledPoint>,int,scala.collection.immutable.Map<java.lang.Object,java.lang.Object>,java.lang.String,int,int) is not applicable 
[ERROR] (argument mismatch; org.apache.spark.api.java.JavaRDD<org.apache.spark.ml.feature.LabeledPoint> cannot be converted to org.apache.spark.rdd.RDD<org.apache.spark.mllib.regression.LabeledPoint>) 

所以编译器没有发现有效的方法在DecisionTree中。

在我的pom.xml我有:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-mllib_2.11</artifactId> 
    <version>2.0.0</version> 
    <exclusions> 
     <exclusion> 
      <groupId>org.jpmml</groupId> 
      <artifactId>pmml-model</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

我期待到DecisionTree使用的多个例子,它似乎喜欢到处一切工作正常。有什么可能是麻烦?

回答

0

发现我已经无意中输入:

org.apache.spark.mllib.feature.LabeledPoint 

相反的:

org.apache.spark.mllib.regression.LabeledPoint