我需要根据JavaDstream的上一个和下一个元素进行计算。但是为了访问那些我需要根据记录计数创建一个滑动窗口。
JavaStreamingContext javaStreamingContext = createSteamingContext(settings);
JavaPairInputDStream<String, String> pivotedKafkaData = KafkaSource.getStream(javaStreamingContext, settings);
JavaDStream<VoyageData> voyageData = pivotedKafkaData.map(Tuple2::_2)
.map(StreamProcessor::getStandardizedRecords)
.map(Functions::getVoyageDataRecords);
JavaDStream<VoyageData> windowedVoyageData = voyageData.window(Durations.seconds(4),Durations.seconds(4));
在我的代码中,我创建了一个基于时间的窗口,现在的问题是,如何从中访问上一个,当前和下一个记录。
答案 0 :(得分:1)
您可以使用updateStateByKey(func)转换进行状态转换,以便更好地了解github示例和博客下的结帐
https://github.com/phalodi/stateful-wordcount-spark
http://www.spark.tc/stateful-spark-streaming-using-transform/