나는 유사한 RDD,RDD의 각 행에 서로를 곱하는 방법은 무엇입니까?
CELL-ID | COUNT
--------------
abcd 10
DEF 20
ghi 15
내가
CELL-ID-1 | CELL-ID-2 | PRODUCT
--------------
abcd DEF 200
abcd ghi 150
DEF abcd 200
DEF ghi 300
...
....
어떻게
가이 작업을 수행 할 수 있습니다와 함께 RDD를 얻을 필요가 있나요? 나는t1
과
t2
이
튜플을 (전체 "기록")를 나타냅니다 직교 제품을 사용하는 연결했지만 당신은 할 수 있습니다 출력
val result = orginalRDD.cartesian(orginalRDD).collect {
case ((t1: _,Int), (t2: _,Int)) if t1 != t2 => t1 * t2
}
'originalRDD'가 큰 데이터 세트 인 경우'.collect()'는 드라이버 프로그램의 메모리에 맞지 않습니다. 당신은 왜 당신이 산출물을 얻을 수 없었는지 언급하지 않습니다, 그래서 우리는 단지 추측 할 수 있습니다. –
꽤 큰 RDD, 6M + 레코드입니다.이 코드를 '지도'또는 다른 것으로 이식해야합니다. – Infamous
사실, 저는 실수였습니다 ... @ tzach-zohar의 답변에 대한 내 의견을 참조하십시오. –