我有一个数据帧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()
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个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()但我得到一个错误,因为它需要一个数组或地图类型.
我认为这应该是一种常见的操作.
dataframe apache-spark apache-spark-sql pyspark apache-spark-ml