Spark笛卡爾積實現方案描述

2021-08-14 21:41:08 字數 1392 閱讀 6215

valconf =new).setmaster("local")

valsc =newsparkcontext(conf)

//val pairs = sc.parallelize(array(("a", vectors.dense(1)), ("b", vectors.dense(2)), ("c", vectors.dense(3)) ))

valpairs = sc.parallelize(list

("a","b","c"))

//1.預設運算元,效能尚可,但簡易可用

valcartesian_rdd = pairs.cartesian(pairs)

println("--------cartesian--------")

cartesian_rdd.foreach(println(_))

//2.自定義實現,效能一般,但結果優異,只取到上三角的物件

defcombs(rdd: rdd[string]): rdd[(string, string)] =else if(rdd.count == 2)else

}valcartesian_rdd2 = combs(pairs)

println("--------combs--------")

cartesian_rdd2.foreach(println(_))

實現。效能待定

//key值相同,value實現笛卡爾積組合

//4.將rdd拉動driver端,用兩層迴圈實現。耗費driver-memory,效能不可控。

valdrivers = pairs.collect()

varempnos = scala.collection.mutable.arraybuffer[(string, string)]()

for(driver_one <- drivers)

}println("--------drive--------")

empnos.foreach(println(_))

println("結論:spark不要輕易計算笛卡爾積!")

Java實現笛卡爾積

產生笛卡爾積組合.param crossargs 資訊組合。格式 return 笛卡爾積組合結果 publicstaticlist cross list crossargs 笛卡爾積索引記錄 intrecord newint crossargs.size list results newarrayl...

php實現笛卡爾積

1.定義 笛卡爾乘積是指在數學中,兩個集合x和y的笛卡尓積 cartesian product 又稱直積,表示為x y,第乙個物件是x的成員而第二個物件是y的所有可能有序對的其中乙個成員。2.實現方法一 arr array array 黑色 紅色 白色 黑色 紫色 array 36碼 37碼 38碼...

php實現笛卡爾積

問題 有那麼乙個陣列 arr array array 1,2,3 array 中 國 人 array a b c 要求使用php語言實現計算該陣列的笛卡爾積。實現過程如下所示 arr array array 1,2,3 array 中 國 人 array a b c function diker a...