Github user mengxr commented on the pull request:

    https://github.com/apache/spark/pull/3836#issuecomment-68383731
  
    @srowen The Scala compiler doesn't generate the static `train` method under 
`DecisionTree` if there is a `train` method under `class DecisionTree`, 
regardless of the method signature. That's why we deprecated this method. From 
javap:
    
    ~~~
    public class org.apache.spark.mllib.tree.DecisionTree implements 
scala.Serializable,org.apache.spark.Logging {
      public static scala.Option<org.apache.spark.mllib.tree.impl.NodeIdCache> 
findBestSplits$default$10();
      public static org.apache.spark.mllib.tree.impl.TimeTracker 
findBestSplits$default$9();
      public static org.apache.spark.mllib.tree.model.DecisionTreeModel 
trainRegressor(org.apache.spark.api.java.JavaRDD<org.apache.spark.mllib.regression.LabeledPoint>,
 java.util.Map<java.lang.Integer, java.lang.Integer>, java.lang.String, int, 
int);
      public static org.apache.spark.mllib.tree.model.DecisionTreeModel 
trainRegressor(org.apache.spark.rdd.RDD<org.apache.spark.mllib.regression.LabeledPoint>,
 scala.collection.immutable.Map<java.lang.Object, java.lang.Object>, 
java.lang.String, int, int);
      public static org.apache.spark.mllib.tree.model.DecisionTreeModel 
trainClassifier(org.apache.spark.api.java.JavaRDD<org.apache.spark.mllib.regression.LabeledPoint>,
 int, java.util.Map<java.lang.Integer, java.lang.Integer>, java.lang.String, 
int, int);
      public static org.apache.spark.mllib.tree.model.DecisionTreeModel 
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);
      public org.slf4j.Logger org$apache$spark$Logging$$log_();
      public void org$apache$spark$Logging$$log__$eq(org.slf4j.Logger);
      public java.lang.String logName();
      public org.slf4j.Logger log();
      public void logInfo(scala.Function0<java.lang.String>);
      public void logDebug(scala.Function0<java.lang.String>);
      public void logTrace(scala.Function0<java.lang.String>);
      public void logWarning(scala.Function0<java.lang.String>);
      public void logError(scala.Function0<java.lang.String>);
      public void logInfo(scala.Function0<java.lang.String>, 
java.lang.Throwable);
      public void logDebug(scala.Function0<java.lang.String>, 
java.lang.Throwable);
      public void logTrace(scala.Function0<java.lang.String>, 
java.lang.Throwable);
      public void logWarning(scala.Function0<java.lang.String>, 
java.lang.Throwable);
      public void logError(scala.Function0<java.lang.String>, 
java.lang.Throwable);
      public boolean isTraceEnabled();
      public org.apache.spark.mllib.tree.model.DecisionTreeModel 
run(org.apache.spark.rdd.RDD<org.apache.spark.mllib.regression.LabeledPoint>);
      public org.apache.spark.mllib.tree.model.DecisionTreeModel 
train(org.apache.spark.rdd.RDD<org.apache.spark.mllib.regression.LabeledPoint>);
      public 
org.apache.spark.mllib.tree.DecisionTree(org.apache.spark.mllib.tree.configuration.Strategy);
    }
    ~~~
    
    One way to call those static method is quite ugly:
    
    ~~~
    DecisionTree$.MODULE$.train(...)
    ~~~


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to