Pyspark实现KMeans机器学习聚类算法(一)

Pyspark实现KMeans机器学习聚类算法(一)

环境配置:

  1. spark 2.1.1
  2. python 3.5.2
  3. IPython 5.1.0

这里配置了pyspark默认以ipython模式启动。(IPython是一个交互式比较好的科学计算包)。

命令行中输入 pyspark(这里需要提前配置好环境变量),启动spark。
对于spark来说,与python相关的机器学习库都在pyspark.ml包中,
首先导入模块VectorsKMeans,创建数据集,spark2.1推荐使用DataFrame,我们这里通过
spark.createDataFrame创建数据集,直接调用KMeans算法这里设置k=2,分为两类。

坑一:Row is read-only

解决办法
rows[0].prediction == rows[1].prediction
True
rows[2].prediction == rows[3].prediction
True

坑二:Mkdirs failed to create file:/C:/Users/Adminstrator/kmeas/metadata.....

解决办法:
C盘换成其他盘,可能C盘为系统盘不能修改,比如换成F盘。

坑三:填了一坑,又来一坑,java.io.IOException:Path F:/spark already exists.Please use write overwirte().save(path) to overwrite it.

解决办法:
temp_path = "F:/"
kmeans_path = temp_path+"kmeans"

把模型存起来,然后需要的时候调用模型。这个场景应用比较普遍。

结论:通过pyspark对数据点用Kmeans聚集为2类,熟悉了Kmeans机器学习算法在spark中的实现,总结了一些常见的错误。注意各种包的导入。

参考文献:1.http://spark.apache.org/docs/2.1.1/api/python/pyspark.ml.html#pyspark.ml.clustering.KMeans

你可能感兴趣的:(Pyspark实现KMeans机器学习聚类算法(一))