spark Streaming在foreach组上运行

时间:2016-07-08 11:49:16

标签: python-2.7 apache-spark pyspark spark-streaming spark-dataframe

我有来自各种来源的数据流。在每个来源中,有许多可用的传感器。下面给出的简化输入DStream数据格式,

来源|传感器|值

A | SType1 |上

A | SType2 |关

A | SType1 |上

B | SType3 |关

B | SType2 |关

B | SType1 |上

请注意,数据在实际场景中还有其他列,后来的处理使用了所有这些列

截至目前,所有DStream窗口操作都在进行此操作而没有任何问题。但我想分别对每个“Source”进行DStream操作。意思是,在源A上,我想做一组操作。同样的设置将在源B和其他来源中重复,如下所示..(不确定我是否正确传达了这一点。)

- foreachSource
      - 在每个窗口上      --foreachRDD
       - 做手术

  

我的操作是自定义要求..我想在特定来源下找到“whether any Sensor+value subsequence exists”   对于Eg ..在上面的例子..

     
    

我的参考子序列= Stype1 + On& Stype2 + Off ,这就存在了     仅限来源"A"

  
     

为了进行子序列查找操作,我编写了一个函数   在foreachRDD下,它工作正常。但是遍历每个来源   在那个功能里面可能效率不高

理想情况下,我认为foreachSource(func)应根据每个来源给出不同的Dstream。这样我就可以在每个源的“func”中使用所有可用的DStream API(窗口等...)。

我的一些研究如下。

我使用Group by / join等尝试了一些方法,但没有成功。 下面的链接显示了如何维护各种Stream输入之间的会话 - 认为这可以调整

http://blog.cloudera.com/blog/2014/11/how-to-do-near-real-time-sessionization-with-spark-streaming-and-apache-hadoop/

PySpark - Combining Session Data without Explicit Session Key / Iterating over All Rows
无论如何要实现这个目标吗?..

我选择的语言是python ......

0 个答案:

没有答案