从时间序列流数据中创建批次

时间:2017-08-10 10:34:16

标签: python apache-spark pyspark data-science

我有像

这样的行的流数据
[timestamp; ID; Value1; Value2]

应以正确的顺序到达spark(ip:port),并且可以通过ID进行分区。

现在我正在尝试根据条件批量/分组流数据 - 即"创建新的RDD并放入流中的所有行(具有相同的ID并按时间戳排序),直到Value1 = 0&# 34。

结果 - 我需要几个RDD / DataFrames / ......包含由CONDITION标识的序列,例如{值1 = 0}:

[2017010100001; ID; 0; 0]
[2017010100001; ID; 10; 5]
[2017010100001; ID; 11; 9]
[2017010100001; ID; 8; 4]
[2017010100001; ID; 0; 1]

如何实现这一目标?

非常感谢任何帮助或提示!

1 个答案:

答案 0 :(得分:0)

好的,根据我的理解,您需要为数据源执行此操作,

  • 设置一个类似kafka的队列系统,并编写一个自定义分区程序,该分区程序以数据源中的数据为基础并使用ID作为分区键。这必须发生在生产者端。
  • 接下来,您需要设置一个连接到此kafka队列的spark streaming consumer,并以微批方式读取消息。
  • 每个微批处理包含0个或更多RDD,每个RDD按时间戳按键排序,并在同一个循环中应用0/1逻辑。

如果有帮助,请告诉我。欢呼声。