首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyspark实现

Pyspark实现
EN

Stack Overflow用户
提问于 2019-11-19 10:43:52
回答 1查看 225关注 0票数 2

我被困在一个问题中,我想要做一个PCA在一个Pyspark列。列的名称是“特性”,其中每一行都是一个SparseVector。

这就是流程:

Df - pyspark df的名称

特征-列的名称

rdd的片段

[行(features=SparseVector(2,{1:50.0})]

行(features=SparseVector(2,{0:654.0,1:20.0}))

代码语言:javascript
复制
from pyspark.mllib.linalg.distributed import RowMatrix
i   = RowMatrix(df.select(‘features’).rdd)
ipc = i.computePrincipalComponents(2)

错误消息

EN

回答 1

Stack Overflow用户

发布于 2019-11-19 11:09:24

您正在获得一个RDD[Row]对象,您的RowRow(features=SparseVector(2,{1:50.0}))

您需要一个RDD[SparseVector],所以您应该更改您的行:

代码语言:javascript
复制
i = RowMatrix(df.select(‘features’).rdd)

代码语言:javascript
复制
i = RowMatrix(df.select(‘features’).rdd.map(lambda x: x[0]))

它将返回RDD[SparseVector]

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

https://stackoverflow.com/questions/58932169

复制
相关文章

相似问题

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