我有两个DStreams。设A:DStream[X]
和B:DStream[Y]
。
我想得到它们的笛卡尔积,换句话说,我想得到一个新的C:DStream[(X, Y)]
包含所有X
和Y
值对。
我知道RDD有一个cartesian
函数。我只能找到this similar question,但它是用Java编写的,所以不回答我的问题。
答案 0 :(得分:1)
Scala相当于链接问题的答案(忽略Time v3
,这里没有使用)
A.transformWith(B, (rddA: RDD[X], rddB: RDD[Y]) => rddA.cartesian(rddB))
或更短
A.transformWith(B, (_: RDD[X]).cartesian(_: RDD[Y]))