Я использую pyspark
У меня есть эта функция, которая создает фиктивный SparkVector из массива Spark
def to_sparse():
return F.udf(lambda x: SparseVector(2, [2, 2], [4, 4]), VectorUDT())
Когда я пытаюсь
embedding_rdd_array = embedding_rdd.select("embedding", to_sparse()('embedding').alias("something"))
, он выдаетTypeError: в скалярный индекс могут быть преобразованы только целочисленные скалярные массивы
Схема ввода представляет собой просто двойной массив
root
|-- embedding: array (nullable = true)
| |-- element: double (containsNull = true)
, когда я собираю и передаю элемент вложения в вектор itработает.но когда я звоню в UDF, это не получается.