Я получаю эту ошибку, когда пытаюсь преобразовать значения в surrogateDF
свойстве pyspark.ml.feature.ImputerModel
в список python:
File "D:\repos\onnxmltools\onnxmltools\convert\sparkml\operator_converters\Imputer.py", line 21, in convert_imputer
surrogates = op.surrogateDF.toPandas().values[0].tolist()
File "C:\Users\jeff\AppData\Local\Continuum\anaconda3\envs\py3.6\lib\site-packages\pyspark\sql\dataframe.py", line 1968, in toPandas
pdf = pd.DataFrame.from_records(self.collect(), columns=self.columns)
File "C:\Users\jeff\AppData\Local\Continuum\anaconda3\envs\py3.6\lib\site-packages\pyspark\sql\dataframe.py", line 465, in collect
with SCCallSiteSync(self._sc) as css:
File "C:\Users\jeff\AppData\Local\Continuum\anaconda3\envs\py3.6\lib\site-packages\pyspark\traceback_utils.py", line 72, in __enter__
self._context._jsc.setCallSite(self._call_site)
AttributeError: 'NoneType' object has no attribute 'setCallSite'
Код показан ниже.Странно то, что выполнение model.surrogateDF.show()
на самом деле печатает правильные значения.
data = self.spark.createDataFrame([
(1.0, float("nan")),
(2.0, float("nan")),
(float("nan"), 3.0),
(4.0, 4.0),
(5.0, 5.0)
], ["a", "b"])
imputer = Imputer(inputCols=["a", "b"], outputCols=["out_a", "out_b"])
model = imputer.fit(data)
surrogates = model.surrogateDF.toPandas().values[0].tolist()
Печать из show()
:
model.surrogateDF.show()
+---+---+
| a| b|
+---+---+
|3.0|4.0|
+---+---+
Я также пытался получить значения по-другому, используяRDD
или first()
без разницы.