首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassDict (用于pyspark.mllib.linalg.DenseVector)的构造所期望的零参数

问ClassDict (用于pyspark.mllib.linalg.DenseVector)的构造所期望的零参数
EN

Stack Overflow用户
提问于 2016-07-07 15:19:02
回答 1查看 7.1K关注 0票数 7

我知道错误了

构造ClassDict的预期零参数(用于pyspark.mllib.linalg.DenseVector)

通过尝试这样做:

我有一个函数,我将其转换为udf,用于从dataframe转换列的值。如下所示:

代码语言:javascript
复制
def func(vector):
   #does something

   return Vector.dense(vector)

udfunc = udf(func, ArrayType(FloatType()))

new_df = df.withColumn("vector",func(df.vector))
new_df.show()

列df.vector具有denseVector值。

有谁想解决这个问题或者暗示吗?

提前谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 15:51:59

考虑到您提供的部分,很明显的问题是您声明了不正确的返回类型。Vector的催化剂类型是VectorUDT而不是ArrayType(FloatType())

代码语言:javascript
复制
from pyspark.mllib.linalg import Vectors, VectorUDT
from pyspark.sql.types import ArrayType, FloatType
from pyspark.sql.functions import udf

dummy_udf = udf(lambda _: Vectors.dense([0, 0, 0]), VectorUDT())

sc.parallelize([(Vectors.dense([1, 1, 1]), )]).toDF(["x"]).select(dummy_udf("x"))

在Spark2.0和更高版本中,使用pyspark.ml.linalg实现与pyspark.ml API的兼容性。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38249291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档