Github user WeichenXu123 commented on a diff in the pull request:
https://github.com/apache/spark/pull/20168#discussion_r160264533
--- Diff: python/pyspark/ml/image.py ---
@@ -71,9 +88,30 @@ def ocvTypes(self):
"""
if self._ocvTypes is None:
- ctx = SparkContext._active_spark_context
- self._ocvTypes =
dict(ctx._jvm.org.apache.spark.ml.image.ImageSchema.javaOcvTypes())
- return self._ocvTypes
+ ctx = SparkContext.getOrCreate()
+ ocvTypeList =
ctx._jvm.org.apache.spark.ml.image.ImageSchema.javaOcvTypes()
+ self._ocvTypes = [self._OcvType(name=x.name(),
+ mode=x.mode(),
+ nChannels=x.nChannels(),
+ dataType=x.dataType(),
+
nptype=self._ocvToNumpyMap[x.dataType()])
+ for x in ocvTypeList]
+ return self._ocvTypes[:]
+
+ def ocvTypeByName(self, name):
+ if self._ocvTypesByName is None:
+ self._ocvTypesByName = {x.name: x for x in self.ocvTypes}
+ if name not in self._ocvTypesByName:
+ raise ValueError(
+ "Can not find matching OpenCvFormat for type = '%s';
supported formats are = %s" %
+ (name, str(
+ self._ocvTypesByName.keys())))
+ return self._ocvTypesByName[name]
+
+ def ocvTypeByMode(self, mode):
+ if self._ocvTypesByMode is None:
+ self._ocvTypesByMode = {x.mode: x for x in self.ocvTypes}
+ return self._ocvTypesByMode[mode]
--- End diff --
Why not add `if mode not in self._ocvTypesByMode:` check here ?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]