AttributeError: объект 'NoneType' не имеет атрибута 'setCallSite' на model.surrogateDF - PullRequest
0 голосов
/ 25 февраля 2019

Я получаю эту ошибку, когда пытаюсь преобразовать значения в 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() без разницы.

...