这是我的代码:
ssc =streamingcontext(sparkcontext,Seconds(time))
spark = sparksession.builder.config(properties).getorcreate()
val Dstream1: ReceiverInputDstream[Document] = ssc.receiverStream(properties) // Dstream1 has Id1 and other fields
val Rdd2 = spark.sql("select Id1,key from hdfs.table").rdd // RDD[Row]
有没有办法我可以加入这两个?
答案 0 :(得分:0)
您首先需要将Dstream和Rdd转换为使用pairRDD。
类似的事情应该做。
val DstreamTuple = Dstream1.map(x => (x. Id1, x))
val Rdd2Tuple = Rdd2.map(x => (x. Id1, x))
完成此操作后,您只需在dstream上进行转换,然后将其加入RDD。
val joinedStream = DstreamTuple.transform(rdd =>
rdd.leftOuterJoin(Rdd2Tuple)
)
希望这会有所帮助:)