是否通过updateStateByKey函数返回的DStream只包含一个RDD?

时间:2015-06-14 23:14:38

标签: apache-spark spark-streaming apache-spark-sql pyspark

通过updateStateByKey函数返回的DStream是否只包含一个RDD?如果没有,在什么情况下DStream会包含多个RDD?

3 个答案:

答案 0 :(得分:2)

每批包含一个RDD。 updateStateByKey返回的DStream是一个“状态”DStream。您仍然可以将此DStream视为普通DStream。对于每个批处理,RDD根据您传递给updateStateByKey的更新函数表示最新状态(键值对)。

答案 1 :(得分:0)

它看起来不像你说的那样,代码作为应用程序的一部分,每批只打印一次,所以我认为每个有状态的DStream只有一个RDD

@transient val statefulDStream = lines.transform(...).map(x => (x, 1)).updateStateByKey(updateFuncs)

statefulDStream.foreachRDD { rdd =>
  println(rdd.first())
}

答案 2 :(得分:0)

是的,由updateStateByKey返回的DStream只有一个RDD