[英]Apache Spark operation on .join dataset
我正在集群mllib上的pyspark上工作。 在python中,我們只有兩個API:一個是預測的,它給出該點的聚類值;一個是cluster.centers,它給出聚類的中心。
有人要求我使用公式(群集中的點數)/(群集的半徑)^ 2查找人口最稠密的群集。
我想出了一種方法來查找兩個值(聚類中的點數,聚類的半徑)。 現在,我有兩個(K,V)格式的數據集,其中一個數據集帶有(clusterValue,群集的半徑),另一個數據集帶有(ClusterValue,群集中的點數)。
我被困在這里,如何使用兩個數據集計算密度值。 有沒有一種方法可以使用數據集計算值?
我使用.join RDD Transformation,通過它我可以獲得組合的數據集(k,(v,w))即(clustervalue,(radius,number))。但無法弄清楚如何在此類型上應用任何函數數據集。 如果您之前有人遇到過此問題,請幫助我
我正在使用spark 1.1.1
您可以使用.map
轉換將任何函數應用於加入RDD的函數,例如將數字除以半徑:
kvw=[("X",(2.0,1.0)),("Y",(3.0,2.0))]
kvwRDD = sc.parallelize(kvw)
kvwRDD.map(lambda (k,(v,w)): (k, w/v))
這在http://spark.apache.org/docs/latest/programming-guide.html#basics中進行了介紹 。
densities = joined.map(
lambda (cluster, (radius, number)): (cluster, number / radius / radius))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.