Github user jkbradley commented on a diff in the pull request:
https://github.com/apache/spark/pull/6088#discussion_r30377470
--- Diff: python/pyspark/ml/param/__init__.py ---
@@ -105,56 +118,77 @@ def isSet(self, param):
Checks whether a param is explicitly set by user.
"""
param = self._resolveParam(param)
- return param in self.paramMap
+ return param in self._paramMap
def hasDefault(self, param):
"""
Checks whether a param has a default value.
"""
param = self._resolveParam(param)
- return param in self.defaultParamMap
+ return param in self._defaultParamMap
def isDefined(self, param):
"""
- Checks whether a param is explicitly set by user or has a default
value.
+ Checks whether a param is explicitly set by user or has
+ a default value.
"""
return self.isSet(param) or self.hasDefault(param)
+ def hasParam(self, paramName):
+ """
+ Tests whether this instance contains a param with a given
+ (string) name.
+ """
+ param = self._resolveParam(paramName)
+ return param in self.params
+
def getOrDefault(self, param):
"""
Gets the value of a param in the user-supplied param map or its
default value. Raises an error if either is set.
"""
- if isinstance(param, Param):
- if param in self.paramMap:
- return self.paramMap[param]
- else:
- return self.defaultParamMap[param]
- elif isinstance(param, str):
- return self.getOrDefault(self.getParam(param))
+ param = self._resolveParam(param)
+ if param in self._paramMap:
+ return self._paramMap[param]
else:
- raise KeyError("Cannot recognize %r as a param." % param)
+ return self._defaultParamMap[param]
- def extractParamMap(self, extraParamMap={}):
+ def extractParamMap(self, extra={}):
"""
Extracts the embedded default param values and user-supplied
values, and then merges them with extra values from input into
a flat param map, where the latter value is used if there exist
conflicts, i.e., with ordering: default param values <
- user-supplied values < extraParamMap.
- :param extraParamMap: extra param values
+ user-supplied values < extra.
+ :param extra: extra param values
:return: merged param map
"""
- paramMap = self.defaultParamMap.copy()
- paramMap.update(self.paramMap)
- paramMap.update(extraParamMap)
+ paramMap = self._defaultParamMap.copy()
+ paramMap.update(self._paramMap)
+ paramMap.update(extra)
return paramMap
+ def copy(self, extra={}):
+ """
+ Creates a copy of this instance with a randomly generated uid
--- End diff --
no longer randomly generated
---
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]