У меня была такая же ошибка, как и при использовании MLlib, и оказалось, что я вернул неправильный тип данных в одной из моих функций. Теперь он работает после простого нажатия на возвращаемое значение. Возможно, это не тот ответ, который вы ищете, но это, по крайней мере, намек на направление.
Была одна и та же проблема, несколько раз. numpy
не имеют неявных преобразований в pyspark.sql.types.
Сделайте простое явное преобразование в систему родного типа. В моем случае это было:
float(vector_a.dot(vector_b)
Я получил эту ошибку, используя Spark Version> = 2.0.
Spark переводит MLlib fucntionality в новое пространство имен ML. В результате есть два типа SparseVector: ml.linalg.SparseVector
и mllib.linalg.SparseVector
Некоторые функции MLlib по-прежнему ожидают более старый вид mllib
from pyspark.ml.linalg import Vectors
# convert ML vector to older MLlib vector
old_vec = Vectors.fromML(new_vec)
HTH