2016-07-18 2 views
1

두 개의 DStream이 있습니다. A:DStream[X]B:DStream[Y]으로 설정하십시오.스칼라로 Spark Streaming에서 두개의 DStream의 데카르트 제품을 얻는 방법?

내가 즉, 이들의 직교 제품을 얻으려면, XY 모든 값 쌍을 포함하는 새로운 C:DStream[(X, Y)] .

RDD에는 cartesian 기능이 있습니다. 나는 this similar question 만 찾을 수 있었지만 Java로되어있어서 내 질문에 답하지 않습니다.

+0

짧습니다. 'A : DStream [(String, Int)]'은 각각에 연결된 계산 된 값을 가진 용어의 집합입니다. 'B : DStream [Int]'는'count' 함수의 결과이므로 하나의 정수 값만 포함합니다. A의 정수 값과 B의 정수 값을 사용하여 무언가를 계산하려고합니다. A와 B의 직교 곱을 얻음으로써 A의 각 레코드에 B의 값이 추가 된 새 DStream을 얻습니다. 내 결과를지도로 계산할 수 있습니다. 순서는 중요하지 않습니다. 저는 Spark와 Scala의 아주 새로운 사용자입니다. 그러므로 내가 잘못하면 더 좋은 방법을 알려주십시오. – Coukaratcha

답변

1

링크 된 질문의 대답의 스칼라 상당 (이 사용하지 않는, Time v3을 무시하는 것은)

A.transformWith(B, (rddA: RDD[X], rddB: RDD[Y]) => rddA.cartesian(rddB)) 

또는 물론

A.transformWith(B, (_: RDD[X]).cartesian(_: RDD[Y])) 
+0

고마워요. 그것은 내 기대에 완벽하게 부합한다. – Coukaratcha

+0

이 경우 응답을 받아 들여야합니다. –

관련 문제