• Spark ML聚类分析之k-means||




    今天更新了电脑上的spark环境,因为上次运行新的流水线的时候,有的一些包在1.6.1中并不支持
    只需要更改系统中用户的环境变量即可
    然后在eclipse中新建pydev工程,执行环境是python3这里面关联的三个旧的库也换掉,最后eclipse环境变量换掉
     
     
    随后开始看新的文档
    这次是聚类的学习


    1. K-mean
    MLlib实现了这个算法的并行版本k-mean++方法,称为kmean||
    这个算法是一个Estimator
    输入:featuresCol
    输出:predictionCol

    执行示例代码的 时候
    遇到一个错误:
    Relative path in absolute URI 
    意思是相对路径出现在了绝对的统一资源定位符中
    根据下面的参考:
    在构建SparkSession的时候,多传递一个一个路径参数的设置spark.sql.warehouse.dir
    因为
    pyspark.sql.utils.IllegalArgumentException: 'java.net.URISyntaxException: Relati
    ve path in absolute URI: file:D:/software/spark-2.0.0-bin-hadoop2.7/examples/src
    /main/python/ml/spark-warehouse'  
    实际是读取当前路径下的spark.sql.warehouse.dir
    这个设置应该是直接把这个做成了绝对路径
    然后还需要把整个的data文件夹拷贝到当前的ml文件夹下
    这样示例程序中原始的相对路径不用再修改了
    因为我发现用../并不能从当前执行路径跳转到设置的data路径
    1. from __future__ import print_function
    2. # $example on$
    3. from pyspark.ml.clustering import KMeans
    4. # $example off$
    5. from pyspark.sql import SparkSession
    6. from pyspark.tests import SPARK_HOME
    7. """
    8. An example demonstrating k-means clustering.
    9. Run with:
    10. bin/spark-submit examples/src/main/python/ml/kmeans_example.py
    11. This example requires NumPy (http://www.numpy.org/).
    12. """
    13. if __name__ == "__main__":
    14. spark = SparkSession
    15. .builder
    16. .appName("PythonKMeansExample")
    17. .config('spark.sql.warehouse.dir','file:///D:/software/spark-2.0.0-bin-hadoop2.7')
    18. .getOrCreate()
    19. # $example on$
    20. # Loads data.
    21. # 需要将data文件夹拷贝到当前的执行路径也就是ml文件夹下
    22. dataset = spark.read.format("libsvm").load("data/mllib/sample_kmeans_data.txt")
    23. # Trains a k-means model.
    24. kmeans = KMeans().setK(2).setSeed(1)
    25. model = kmeans.fit(dataset)
    26. # Evaluate clustering by computing Within Set Sum of Squared Errors.
    27. wssse = model.computeCost(dataset)
    28. print("Within Set Sum of Squared Errors = " + str(wssse))
    29. # Shows the result.
    30. centers = model.clusterCenters()
    31. print("Cluster Centers: ")
    32. for center in centers:
    33. print(center)
    34. # $example off$
    35. spark.stop()
    36. '''
    37. sample_kmeans_data.txt
    38. 0 1:0.0 2:0.0 3:0.0
    39. 1 1:0.1 2:0.1 3:0.1
    40. 2 1:0.2 2:0.2 3:0.2
    41. 3 1:9.0 2:9.0 3:9.0
    42. 4 1:9.1 2:9.1 3:9.1
    43. 5 1:9.2 2:9.2 3:9.2
    44. '''
    45. '''
    46. Within Set Sum of Squared Errors = 0.11999999999994547
    47. Cluster Centers:
    48. [ 0.1 0.1 0.1]
    49. [ 9.1 9.1 9.1]
    50. '''






    万事走心 精益求美


  • 相关阅读:
    SQL Server 2005技术内幕:查询、调整和优化2——Bookmark Lookup
    隐藏文字用图片代替方案
    检索get参素
    a:hover之后ie6要恢复原来的状态需要hover的时候改变a的状态
    暂记
    台式机搭建wifi热点
    多行文本垂直居中
    chrome上做web app开发 模拟不同的分辨率和设备
    工厂模式和构造函数
    字符串替换
  • 原文地址:https://www.cnblogs.com/kongchung/p/5776438.html
Copyright © 2020-2023  润新知