Pyspark Dataframes:创建要在 python 中的聚类中使用的特征列

Posted

技术标签:

【中文标题】Pyspark Dataframes:创建要在 python 中的聚类中使用的特征列【英文标题】:Pyspark Dataframes: Creating a features column to be used in the clustering in python 【发布时间】:2019-07-25 23:29:33 【问题描述】:

我正在尝试在 pyspark 中创建实施 k-means 聚类。我使用 mnist 作为我的数据集,它有数百个具有整数值的列。

创建数据框后,当我尝试创建要在聚类中使用的特征列时,我不知道要为VectorAssembler 提供什么作为inputCols 参数。下面是我的代码

sc = SparkContext('local')
spark = SparkSession(sc)

df = spark.read.csv('mnist_train.csv')
df.show()
df_feat = df.select(*(df[c].cast("float").alias(c) for c in df.columns[0:]))
df_feat.show()

vecAssembler = VectorAssembler(inputCols = ???????, outputCol = "features")

对于我正在使用的这个大整数值数据,我应该为inputCols 设置什么参数?

【问题讨论】:

【参考方案1】:

Vectorassembler 需要列名列表来创建特征向量。因此,对于 mnist 数据集,您可以给他除标签之外的所有内容。例如:

#I assume that df_feat.columns[0] is the column which contains the labels
cols = df_feat.columns[1:]
vecAssembler = VectorAssembler(inputCols = cols, outputCol = "features")

【讨论】:

以上是关于Pyspark Dataframes:创建要在 python 中的聚类中使用的特征列的主要内容,如果未能解决你的问题,请参考以下文章

在 PySpark 的两个不同 pyspark.sql.dataframes 中的两列中创建一个 pyspark.sql.dataframe

如何使用 Pyspark 和 Dataframes 查询 Elasticsearch 索引

Pyspark(Dataframes)逐行读取文件(将行转换为字符串)

Pyspark DataFrames 中的嵌套 SELECT 查询

PySpark:具有不同列的 DataFrames 的动态联合

使用 Pyspark / Dataframes 时,如何将谓词下推到 Cassandra 或限制请求的数据?