Pyspark PCA 实施
Posted
技术标签:
【中文标题】Pyspark PCA 实施【英文标题】:Pyspark PCA Implementation 【发布时间】:2019-11-19 10:43:52 【问题描述】:我遇到了一个问题,我想在 Pyspark Dataframe 列上进行 PCA。列的名称是“特征”,其中每一行都是一个 SparseVector。
这是流程:
Df - pyspark df 的名称
特征 - 列名
rdd 的片段
[Row(features=SparseVector(2,1:50.0)),
行(features=SparseVector(2,0:654.0, 1:20.0))],
from pyspark.mllib.linalg.distributed import RowMatrix
i = RowMatrix(df.select(‘features’).rdd)
ipc = i.computePrincipalComponents(2)
Error Message
【问题讨论】:
【参考方案1】:您将获得一个RDD[Row]
对象,其中您的Row
是Row(features=SparseVector(2,1:50.0))
。
你需要一个RDD[SparseVector]
,所以你应该换行:
i = RowMatrix(df.select(‘features’).rdd)
到
i = RowMatrix(df.select(‘features’).rdd.map(lambda x: x[0]))
这将返回RDD[SparseVector]
【讨论】:
谢谢您,但仍然无法正常工作。我有一个新错误“无法将类型以上是关于Pyspark PCA 实施的主要内容,如果未能解决你的问题,请参考以下文章