aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/ml/param
diff options
context:
space:
mode:
authorYanbo Liang <ybliang8@gmail.com>2016-01-29 09:22:24 -0800
committerJoseph K. Bradley <joseph@databricks.com>2016-01-29 09:22:24 -0800
commite51b6eaa9e9c007e194d858195291b2b9fb27322 (patch)
treeb6af90c439154fe7514fd32e47a56a693ffd745a /python/pyspark/ml/param
parent55561e7693dd2a5bf3c7f8026c725421801fd0ec (diff)
downloadspark-e51b6eaa9e9c007e194d858195291b2b9fb27322.tar.gz
spark-e51b6eaa9e9c007e194d858195291b2b9fb27322.tar.bz2
spark-e51b6eaa9e9c007e194d858195291b2b9fb27322.zip
[SPARK-13032][ML][PYSPARK] PySpark support model export/import and take LinearRegression as example
* Implement ```MLWriter/MLWritable/MLReader/MLReadable``` for PySpark. * Making ```LinearRegression``` to support ```save/load``` as example. After this merged, the work for other transformers/estimators will be easy, then we can list and distribute the tasks to the community. cc mengxr jkbradley Author: Yanbo Liang <ybliang8@gmail.com> Author: Joseph K. Bradley <joseph@databricks.com> Closes #10469 from yanboliang/spark-11939.
Diffstat (limited to 'python/pyspark/ml/param')
-rw-r--r--python/pyspark/ml/param/__init__.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/python/pyspark/ml/param/__init__.py b/python/pyspark/ml/param/__init__.py
index 3da36d32c5..ea86d6aeb8 100644
--- a/python/pyspark/ml/param/__init__.py
+++ b/python/pyspark/ml/param/__init__.py
@@ -314,3 +314,27 @@ class Params(Identifiable):
if p in paramMap and to.hasParam(p.name):
to._set(**{p.name: paramMap[p]})
return to
+
+ def _resetUid(self, newUid):
+ """
+ Changes the uid of this instance. This updates both
+ the stored uid and the parent uid of params and param maps.
+ This is used by persistence (loading).
+ :param newUid: new uid to use
+ :return: same instance, but with the uid and Param.parent values
+ updated, including within param maps
+ """
+ self.uid = newUid
+ newDefaultParamMap = dict()
+ newParamMap = dict()
+ for param in self.params:
+ newParam = copy.copy(param)
+ newParam.parent = newUid
+ if param in self._defaultParamMap:
+ newDefaultParamMap[newParam] = self._defaultParamMap[param]
+ if param in self._paramMap:
+ newParamMap[newParam] = self._paramMap[param]
+ param.parent = newUid
+ self._defaultParamMap = newDefaultParamMap
+ self._paramMap = newParamMap
+ return self