我有一個RDD這是類似的,如何將RDD中的每一行與對方相乘?
CELL-ID | COUNT
--------------
abcd 10
DEF 20
ghi 15
我需要一個RDD與
CELL-ID-1 | CELL-ID-2 | PRODUCT
--------------
abcd DEF 200
abcd ghi 150
DEF abcd 200
DEF ghi 300
...
....
如何才能做到這一點?我綁在使用笛卡爾積,但無法得到的輸出
val result = orginalRDD.cartesian(orginalRDD).collect {
case ((t1: _,Int), (t2: _,Int)) if t1 != t2 => t1 * t2
}
如果'originalRDD'是一個很大的數據集,'.collect()'可能不適合驅動程序的內存。你沒有提到爲什麼你不能得到輸出,所以我們只能推測。 –
這是相當大的RDD,6M +記錄,如果此代碼被移植到「地圖」或其他東西 – Infamous
其實,我錯了......請參閱@ tzach-zohar的回覆我對他的回答的評論。 –