相关疑难解决方法(0)

如何访问Spark DataFrame中VectorUDT列的元素?

我有一个数据帧dfVectorUDT指定的列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

16
推荐指数
1
解决办法
5886
查看次数