基于轮询的火花流动作

时间:2015-10-22 20:39:22

标签: java apache-spark spark-streaming

通常在火花流中,可以在事件驱动的pardigm中进行转换(过滤,映射等)或输出操作(collectforEach等)(即仅发生动作)如果收到消息)。

是否可以以基于轮询的方式每隔几秒执行一次操作,无论是否收到新邮件?

在我的用例中,我将过滤掉一个流,然后对此过滤的流执行操作。但是,即使流中没有收到消息,我也希望每隔几秒对流中的数据进行操作。

例如,我有以下流,只有在完成微批处理时才会调用violationChecking()函数。从本质上讲,这也意味着我必须在此流中接收一条消息来进行处理。我有什么方法可以每隔10秒做同样的操作吗?

sortedMessages.foreach(
    new Function<JavaRDD<Tuple5<Long, Integer, String, Integer, Integer>>, Void>() {
    @Override
    public Void call(JavaRDD<Tuple5<Long, Integer, String, Integer, Integer>> tuple5JavaRDD) throws Exception {
         List<Tuple5<Long, Integer, String, Integer, Integer>> list = tuple5JavaRDD.collect();
         violationChecking(list);
         return null;
    }
});

0 个答案:

没有答案