2014-04-21 6 views

risposta

3

Sì, c'è. Dai uno sguardo allo DStream APIs e hanno fornito join esterni sinistro e destro.

Se si dispone di un flusso di di tipo diciamo 'Record', e si desidera unire due flussi di record, allora si può fare questo tipo:

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

Come dicono le API, la sinistra e i flussi giusti devono essere suddivisi in hash. vale a dire, puoi prendere alcuni attributi da un Record, (o potrebbe essere in qualsiasi altro modo) per calcolare un valore di hash e convertirlo per accoppiare il DStream. Gli stream left e right saranno di tipo DStream[(Long, Record)] prima di chiamare questa funzione di join. (È solo un esempio. Il tipo di hash può essere di un altro tipo diverso da Long.)

+0

grazie..it sarà utile se si può dare un esempio di codice ... – user3279189

5

E 'semplice come rdd1.leftOuterJoin(rdd2) ma bisogna assicurarsi che entrambe le RDD di sono in forma di (chiave, valore) per ogni elemento di il rdd's.