当前位置: 代码迷 >> java >> Spark流-将JavaDStream feed(textFileStream)与参考数据文件一起加入
  详细解决方案

Spark流-将JavaDStream feed(textFileStream)与参考数据文件一起加入

热度:114   发布时间:2023-08-04 09:28:34.0

我们每1分钟就会收到一些文本文件,并使用Spark Streaming对其进行汇总

JavaStreamingContext ssc = new JavaStreamingContext(sparkConf, Durations.seconds(60);
JavaDStream<String> file = ssc.textFileStream(inputDir)

但是,完成聚合后,我们希望将聚合的JavaPairDStream<>与另一个提要(该提要是参考数据,每1小时到达一次)一起加入。

在Spark Streaming中是否可以加入两个以不同时间间隔到达的提要?

有人这样做吗?

您应该将第一个提要聚合的结果作为RDD保留在磁盘上,以便DStream可以从内存中删除批处理数据并继续运行。 当其他DStream启动批处理时,您可以将其与以前创建的RDD合并。

请参阅

我们在Stream-DatSet联接上查看了Spark文档: ://spark.apache.org/docs/latest/streaming-programming-guide.html#output-operations-on-dstreams

并发现其中有一个重载的方法

<K2,V2> JavaPairDStream<K2,V2> transformToPair(Function<R,JavaPairRDD<K2,V2>> transformFunc)

<K2,V2> JavaPairDStream<K2,V2> transformToPair(Function2<R,Time,JavaPairRDD<K2,V2>> transformFunc)

它接受时间参数,并且实际上可以在每个流传输间隔期间刷新数据集。 这解决了我们的问题。

  相关解决方案