aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/ml/feature.py
diff options
context:
space:
mode:
authorBryan Cutler <cutlerb@gmail.com>2016-06-10 11:27:30 -0700
committerYanbo Liang <ybliang8@gmail.com>2016-06-10 11:27:30 -0700
commit7d7a0a5e0749909e97d90188707cc9220a1bb73a (patch)
treef6919d175658e1b901e9bbc0a469efa0906ad153 /python/pyspark/ml/feature.py
parent254bc8c34e70241508bdfc8ff42a65491f5280cd (diff)
downloadspark-7d7a0a5e0749909e97d90188707cc9220a1bb73a.tar.gz
spark-7d7a0a5e0749909e97d90188707cc9220a1bb73a.tar.bz2
spark-7d7a0a5e0749909e97d90188707cc9220a1bb73a.zip
[SPARK-15738][PYSPARK][ML] Adding Pyspark ml RFormula __str__ method similar to Scala API
## What changes were proposed in this pull request? Adding __str__ to RFormula and model that will show the set formula param and resolved formula. This is currently present in the Scala API, found missing in PySpark during Spark 2.0 coverage review. ## How was this patch tested? run pyspark-ml tests locally Author: Bryan Cutler <cutlerb@gmail.com> Closes #13481 from BryanCutler/pyspark-ml-rformula_str-SPARK-15738.
Diffstat (limited to 'python/pyspark/ml/feature.py')
-rwxr-xr-xpython/pyspark/ml/feature.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/python/pyspark/ml/feature.py b/python/pyspark/ml/feature.py
index bfb2fb7071..ca77ac395d 100755
--- a/python/pyspark/ml/feature.py
+++ b/python/pyspark/ml/feature.py
@@ -2528,6 +2528,8 @@ class RFormula(JavaEstimator, HasFeaturesCol, HasLabelCol, JavaMLReadable, JavaM
True
>>> loadedRF.getLabelCol() == rf.getLabelCol()
True
+ >>> str(loadedRF)
+ 'RFormula(y ~ x + s) (uid=...)'
>>> modelPath = temp_path + "/rFormulaModel"
>>> model.save(modelPath)
>>> loadedModel = RFormulaModel.load(modelPath)
@@ -2542,6 +2544,8 @@ class RFormula(JavaEstimator, HasFeaturesCol, HasLabelCol, JavaMLReadable, JavaM
|0.0|0.0| a|[0.0,1.0]| 0.0|
+---+---+---+---------+-----+
...
+ >>> str(loadedModel)
+ 'RFormulaModel(ResolvedRFormula(label=y, terms=[x,s], hasIntercept=true)) (uid=...)'
.. versionadded:: 1.5.0
"""
@@ -2586,6 +2590,10 @@ class RFormula(JavaEstimator, HasFeaturesCol, HasLabelCol, JavaMLReadable, JavaM
def _create_model(self, java_model):
return RFormulaModel(java_model)
+ def __str__(self):
+ formulaStr = self.getFormula() if self.isDefined(self.formula) else ""
+ return "RFormula(%s) (uid=%s)" % (formulaStr, self.uid)
+
class RFormulaModel(JavaModel, JavaMLReadable, JavaMLWritable):
"""
@@ -2597,6 +2605,10 @@ class RFormulaModel(JavaModel, JavaMLReadable, JavaMLWritable):
.. versionadded:: 1.5.0
"""
+ def __str__(self):
+ resolvedFormula = self._call_java("resolvedFormula")
+ return "RFormulaModel(%s) (uid=%s)" % (resolvedFormula, self.uid)
+
@inherit_doc
class ChiSqSelector(JavaEstimator, HasFeaturesCol, HasOutputCol, HasLabelCol, JavaMLReadable,