Как получить декартово произведение двух DStream в Spark Streaming с помощью Scala?
У меня есть два DStreams. Позволять A:DStream[X]
а также B:DStream[Y]
,
Я хочу получить декартово произведение их, другими словами, новый C:DStream[(X, Y)]
содержащий все пары X
а также Y
ценности.
Я знаю, что есть cartesian
функция для СДР. Мне удалось найти только похожий вопрос, но он на Java и поэтому не отвечает на мой вопрос.
1 ответ
Решение
Scala-эквивалент ответа на связанный вопрос (игнорирование Time v3
, который там не используется) есть
A.transformWith(B, (rddA: RDD[X], rddB: RDD[Y]) => rddA.cartesian(rddB))
или короче
A.transformWith(B, (_: RDD[X]).cartesian(_: RDD[Y]))