Hadoop 是否可以在单火花环境中收听两个DTSREAM?

Hadoop 是否可以在单火花环境中收听两个DTSREAM?,hadoop,apache-spark,apache-spark-sql,pyspark,spark-streaming,Hadoop,Apache Spark,Apache Spark Sql,Pyspark,Spark Streaming,我使用Spark 1.4.1。我想同时听两个不同的流,并在这两个流中找到共同的事件 例如:假设一个温度数据流和另一个压力数据流。我想听听这两条溪流的声音,并在它们都很高的时候发出警报 我有两个问题 有可能在一个火花中加工成两个不同的流吗 上下文 在一个驱动程序中是否可能有多个具有可变窗口大小的spark上下文 对于如何处理上述情况的任何其他想法,我们也将不胜感激 谢谢您可以从同一StreamingContext创建多个数据流。例如 val dstreamTemp: DStream[Strin

我使用Spark 1.4.1。我想同时听两个不同的流,并在这两个流中找到共同的事件

例如:假设一个温度数据流和另一个压力数据流。我想听听这两条溪流的声音,并在它们都很高的时候发出警报

我有两个问题

  • 有可能在一个火花中加工成两个不同的流吗 上下文
  • 在一个驱动程序中是否可能有多个具有可变窗口大小的spark上下文
对于如何处理上述情况的任何其他想法,我们也将不胜感激


谢谢

您可以从同一StreamingContext创建多个数据流。例如

val dstreamTemp: DStream[String, Int] = KafkaUtils.createStream(ssc, zkQuorum, group, "TemperatureData").map(...)
val dstreamPres: DStream[String, Int] = KafkaUtils.createStream(ssc, zkQuorum, group, "PressureData")
它们都将具有与StreamingContext上定义的相同的“批处理持续时间”。但是,您可以创建新窗口:

val windowedStreamTemp = dstreamTemp.window(Seconds(20))
val windowedStreamPres = dstreamPres.window(Minutes(1))
您还可以加入流(假设一个键值流)。例如

然后,您可以在
连接流
上发出警报

val joinedStream = windowedStreamTemp.join(windowedStreamPres)