【问题标题】:Join Dstream[Document] and Rdd by key Spark Scala通过键 Spark Scala 加入 Dstream[Document] 和 Rdd
【发布时间】:2019-02-07 00:04:24
【问题描述】:

这是我的代码:

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]

有没有办法加入这两个?

【问题讨论】:

    标签: apache-spark spark-streaming rdd apache-spark-dataset dstream


    【解决方案1】:

    您首先需要将 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)
    )
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 2016-09-07
      • 2016-06-12
      • 2020-06-03
      • 1970-01-01
      • 2017-08-21
      • 2021-09-08
      • 2015-10-31
      • 2019-06-16
      相关资源
      最近更新 更多