Java 获取spark的流式窗口时间戳

Java 获取spark的流式窗口时间戳,java,scala,apache-spark,zeromq,spark-streaming,Java,Scala,Apache Spark,Zeromq,Spark Streaming,我使用Spark streaming以特定的间隔从zero MQ队列接收数据,对其进行充实并将其保存为拼花文件。我想比较从一个流媒体窗口到另一个流媒体窗口的数据。(稍后使用拼花文件) 如何在特定的流媒体窗口中找到时间戳,我可以将其添加为另一个字段,同时进行扩展以便于比较 JavaStreamingContext javaStreamingContext = new JavaStreamingContext(sparkConf, new Duration(duration)); inputStre

我使用Spark streaming以特定的间隔从zero MQ队列接收数据,对其进行充实并将其保存为拼花文件。我想比较从一个流媒体窗口到另一个流媒体窗口的数据。(稍后使用拼花文件)

如何在特定的流媒体窗口中找到时间戳,我可以将其添加为另一个字段,同时进行扩展以便于比较

JavaStreamingContext javaStreamingContext = new JavaStreamingContext(sparkConf, new Duration(duration));
inputStream = javaStreamingContext.receiverStream(new StreamReceiver( hostName, port, StorageLevel.MEMORY_AND_DISK_SER()));
JavaDStream<myPojoFormat> enrichedData = inputStream.map(new Enricher());
JavaStreamingContext-JavaStreamingContext=newjavastreamingcontext(sparkConf,newduration(Duration));
inputStream=javaStreamingContext.receiverStream(新的StreamReceiver(主机名、端口、存储级别、内存和磁盘);
JavaDStream enrichedData=inputStream.map(new Enricher());

简而言之,我想要每个流窗口的时间戳。(不是记录级别而是批处理级别)

您可以使用
JavaDStream
transform
方法获取
Function2
s参数。
Function2
获取一个
RDD
和一个
Time
对象,并返回一个新的RDD。总体结果将是一个新的
JavaDStream
,其中
RDD
已根据您选择的逻辑进行转换。

Mark,感谢您的快速响应。我已经在对inputdata进行映射了,我想在我的数据的每一行上添加“批处理时间戳”,恐怕我认为通过转换是不可能的,因为我需要在行级别添加。如果我错了,请随时纠正我。当然,您可以通过转换方法将时间戳添加到每一行。例如,在transform中,您将有一个rdd.map方法,其中在每个rdd的每一行添加时间戳。。每个rdd都有一个时间戳,这是创建rdd的时间戳…谢谢,我也发现了这一点(但是很晚了),我在u建议的转换中移动了我的映射,看起来效果很好