You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Bertrand Dechoux (JIRA)" <ji...@apache.org> on 2015/08/07 21:59:46 UTC

[jira] [Comment Edited] (SPARK-9720) spark.ml Identifiable types should have UID in toString methods

    [ https://issues.apache.org/jira/browse/SPARK-9720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14662333#comment-14662333 ] 

Bertrand Dechoux edited comment on SPARK-9720 at 8/7/15 7:59 PM:
-----------------------------------------------------------------

I could take care of it.

Here is the list (only in spark.ml) :
* DecisionTreeClassificationModel
* DecisionTreeRegressionModel
* GBTClassificationModel
* GBTRegressionModel
* NaiveBayesModel
* RFormula
* RFormulaModel
* RandomForestClassificationModel
* RandomForestRegressionModel

The question is : do we want to enforce that "identifiable types should be identifiable by their toString".

It does make sense. The following question is : can we introduce potential API breaking change in the API in order to do it?

If the answer is yes, the easy way would be to set Identifiable.toString as final and compose it with an overridable empty suffix

{code}
private[spark] trait Identifiable {

  /**
   * An immutable unique ID for the object and its derivatives.
   */
  val uid: String
  
  def toStringSuffix: String = ""

  override final def toString: String = uid + toStringSuffix
}
{code}

Is there a committer that could validate this proposal?


was (Author: bdechoux):
I could take care of it.

Here is the list (only in spark.ml) :
* DecisionTreeClassificationModel
* DecisionTreeRegressionModel
* GBTClassificationModel
* GBTRegressionModel
* NaiveBayesModel
* RFormula
* RFormulaModel
* RandomForestClassificationModel
* RandomForestRegressionModel

The question is do we want to enforce that "identifiable types should be identifiable by their toString".
It does make sense. The following question is can we introduce potential API breaking change in the API in order to do it?

If the answer is yes, the easy way would be to set Identifiable.toString as final and compose it with an overridable empty suffix

private[spark] trait Identifiable {

  /**
   * An immutable unique ID for the object and its derivatives.
   */
  val uid: String
  
  def toStringSuffix: String = ""

  override final def toString: String = uid + toStringSuffix
}

Is there a committer that could validate this proposal?

> spark.ml Identifiable types should have UID in toString methods
> ---------------------------------------------------------------
>
>                 Key: SPARK-9720
>                 URL: https://issues.apache.org/jira/browse/SPARK-9720
>             Project: Spark
>          Issue Type: Improvement
>          Components: ML
>            Reporter: Joseph K. Bradley
>            Priority: Minor
>              Labels: starter
>
> It would be nice to print the UID (instance name) in toString methods.  That's the default behavior for Identifiable, but some types override the default toString and do not print the UID.



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

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