У меня есть dataframe df
с столбцом VectorUDT
с именем features
. Как получить элемент столбца, например, первый элемент?
Я пробовал сделать следующее
from pyspark.sql.functions import udf
first_elem_udf = udf(lambda row: row.values[0])
df.select(first_elem_udf(df.features)).show()
но я получаю ошибку net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict(for numpy.dtype)
. Такая же ошибка, если я делаю first_elem_udf = first_elem_udf(lambda row: row.toArray()[0])
.
Я также пробовал explode()
, но получаю ошибку, потому что для этого требуется массив или тип карты.
Это, по-моему, общая операция.