pyspark编写Kmeans样例
时间: 2023-08-06 12:12:06 浏览: 66
python实现kMeans算法
以下是一个简单的 PySpark K-Means 示例:
```python
from pyspark.ml.clustering import KMeans
from pyspark.ml.evaluation import ClusteringEvaluator
from pyspark.ml.feature import VectorAssembler
# 加载数据
data = spark.read.format("csv").option("header", "true").load("data.csv")
# 合并特征列
assembler = VectorAssembler(inputCols=["col1", "col2", "col3"], outputCol="features")
dataset = assembler.transform(data)
# 训练K-Means模型
kmeans = KMeans().setK(2).setSeed(1)
model = kmeans.fit(dataset)
# 预测簇标签
predictions = model.transform(dataset)
# 评估模型
evaluator = ClusteringEvaluator()
silhouette = evaluator.evaluate(predictions)
print("Silhouette with squared euclidean distance = " + str(silhouette))
# 输出每个簇的中心点
centers = model.clusterCenters()
print("Cluster Centers: ")
for center in centers:
print(center)
```
其中,`data.csv` 是包含数据的 CSV 文件,`col1`、`col2` 和 `col3` 是数据集中的三个特征列。在这个例子中,我们使用 `VectorAssembler` 将这三列合并成一个特征向量列,然后使用 `KMeans` 对数据进行聚类。最后,我们使用 `ClusteringEvaluator` 评估模型,并输出每个簇的中心点。
阅读全文