2014-04-21 30 views

回答

3

是的,有。看看DStream APIs,他们提供了左外连接和右外连接。

如果你有型的流让我们说“记录”,你想加入的记录两个流,那么你就可以做到这一点,如:

var res: DStream[(Long, (Record, Option[Record]))] = left.leftOuterJoin(right) 

随着API的说法,左,正确的流必须被散列分区。即,您可以从Record中获取一些属性(或以其他方式)来计算哈希值并将其转换为对DStream。在调用该加入函数之前,leftright流的类型将为DStream[(Long, Record)]。 (这只是一个例子,Hash类型也可以是Long以外的其他类型)。

+0

谢谢..如果你能给出一个代码示例将是有帮助的... – user3279189

5

这是因为rdd1.leftOuterJoin(rdd2)一样简单,但你必须确保两个RDD的是(键,值)的每个元素的形式rdd的。