Spark ML聚類分析之k-means||




今天更新了電腦上的spark環境,因為上次運行新的流水線的時候,有的一些包在1.6.1中並不支持
只需要更改系統中用戶的環境變量即可
然后在eclipse中新建pydev工程,執行環境是python3這里面關聯的三個舊的庫也換掉,最后eclipse環境變量換掉
 
 
隨后開始看新的文檔
這次是聚類的學習


1. K-mean
MLlib實現了這個算法的並行版本k-mean++方法,稱為kmean||
這個算法是一個 Estimator
輸入:featuresCol
輸出:predictionCol

執行示例代碼的 時候
遇到一個錯誤:
Relati ve 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. '''






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM