如何创建像sc().emptyRDD()
这样的新DStram。
我需要创建一个空的JavaPairDStream<String, String>
来与另一个JavaPairDStream联合。我将在批次结束时填写此dstream以在新批次中使用联合。
完整要求是: 我想在阶段之间更新List。
updateStateBykey()
更新的RDD(密钥)。一些新的
键在每个批次中添加。 但需要在下一批微批次中更新此RDD。使用updateStateByKey不适用于此要求。所以我想在批处理开始时用newKeys加入这个更新的列表。
答案 0 :(得分:2)
创建空DStream
的一种方法是使用JavaStreamingContext.queueStream
:
val inputStream = ssc.queueStream(new mutable.Queue[RDD[String]])
但是,如果你需要保持DStream
批次之间的状态,如@ z-star所述,可以使用PairDStreamFunctions.mapWithState
形式的有状态DStream来实现Spark 1.6.x和以上,PairDStreamFunctions.updateStateByKey
为较低版本。