[ 
https://issues.apache.org/jira/browse/SPARK-15605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yanbo Liang updated SPARK-15605:
--------------------------------
    Description: 
This bug is reported by
http://apache-spark-developers-list.1001551.n3.nabble.com/Creation-of-SparkML-Estimators-in-Java-broken-td17710.html
 .

To fix the issue mentioned in the mailing list, we can implement maxIter as 
following:
{code}
  private IntParam maxIter_;

  public IntParam maxIter() {
    return maxIter_;
  }

  public int getMaxIter() {
    return (Integer) getOrDefault(maxIter_);
  }

  public MyJavaLogisticRegression setMaxIter(int value) {
    return (MyJavaLogisticRegression) set(maxIter_, value);
  }

  private void init() {
    maxIter_ = new IntParam(this, "maxIter", "max number of iterations");
    setDefault(maxIter(), 100);
  }
{code}
I found we only implement JavaParams who is the wrappers of Scala Params.
We still need Java-friendly wrappers for other traits who extends from Scala 
Params.

For example, in Scala we have: 
    trait HasLabelCol extends Params
We should have the Java-friendly wrappers as follows:
    class JavaHasLabelCol extends Params

Otherwise, "Param.parent" will be null for each param and it will throw 
exceptions when calling "Param.hasParam()".
I think the Java compatibility for Params/Param should be further defined, and 
it's better to remove the "JavaDeveloperApiExample" temporary since it may 
mislead users.

  was:
This bug is reported by
http://apache-spark-developers-list.1001551.n3.nabble.com/Creation-of-SparkML-Estimators-in-Java-broken-td17710.html
 .

I found we only implement JavaParams who is the wrappers of Scala Params.
We still need Java-friendly wrappers for other traits who extends from Scala 
Params.

For example, in Scala we have: 
    trait HasLabelCol extends Params
We should have the Java-friendly wrappers as follows:
    class JavaHasLabelCol extends Params

Otherwise, "Param.parent" will be null for each param and it will throw 
exceptions when calling "Param.hasParam()".
I think the Java compatibility for Params/Param should be further defined, and 
it's better to remove the "JavaDeveloperApiExample" temporary since it may 
mislead users.


> ML JavaDeveloperApiExample is broken
> ------------------------------------
>
>                 Key: SPARK-15605
>                 URL: https://issues.apache.org/jira/browse/SPARK-15605
>             Project: Spark
>          Issue Type: Bug
>          Components: Examples, ML
>            Reporter: Yanbo Liang
>            Priority: Minor
>
> This bug is reported by
> http://apache-spark-developers-list.1001551.n3.nabble.com/Creation-of-SparkML-Estimators-in-Java-broken-td17710.html
>  .
> To fix the issue mentioned in the mailing list, we can implement maxIter as 
> following:
> {code}
>   private IntParam maxIter_;
>   public IntParam maxIter() {
>     return maxIter_;
>   }
>   public int getMaxIter() {
>     return (Integer) getOrDefault(maxIter_);
>   }
>   public MyJavaLogisticRegression setMaxIter(int value) {
>     return (MyJavaLogisticRegression) set(maxIter_, value);
>   }
>   private void init() {
>     maxIter_ = new IntParam(this, "maxIter", "max number of iterations");
>     setDefault(maxIter(), 100);
>   }
> {code}
> I found we only implement JavaParams who is the wrappers of Scala Params.
> We still need Java-friendly wrappers for other traits who extends from Scala 
> Params.
> For example, in Scala we have: 
>     trait HasLabelCol extends Params
> We should have the Java-friendly wrappers as follows:
>     class JavaHasLabelCol extends Params
> Otherwise, "Param.parent" will be null for each param and it will throw 
> exceptions when calling "Param.hasParam()".
> I think the Java compatibility for Params/Param should be further defined, 
> and it's better to remove the "JavaDeveloperApiExample" temporary since it 
> may mislead users.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to