Apache spark Spark Streaming是否像Flink一样支持迭代?

Apache spark Spark Streaming是否像Flink一样支持迭代?,apache-spark,apache-flink,Apache Spark,Apache Flink,例如,这是Flink的程序,它从一系列整数中连续减去1,直到它们达到零: DataStream someIntegers=env.generateSequence(0,1000); IterativeStream迭代=someIntegers.iterate(); DataStream minusOne=iteration.map(新的MapFunction(){ @凌驾 公共长映射(长值)引发异常{ 返回值-1; } }); DataStream stillGreaterThanZero=m

例如,这是Flink的程序,它从一系列整数中连续减去1,直到它们达到零:

DataStream someIntegers=env.generateSequence(0,1000);
IterativeStream迭代=someIntegers.iterate();
DataStream minusOne=iteration.map(新的MapFunction(){
@凌驾
公共长映射(长值)引发异常{
返回值-1;
}
});
DataStream stillGreaterThanZero=minusOne.filter(新的FilterFunction(){
@凌驾
公共布尔筛选器(长值)引发异常{
返回值(值>0);
}
});
迭代.closeWith(仍然大于零);
DataStream lessThanZero=minusOne.filter(新的FilterFunction(){
@凌驾
公共布尔筛选器(长值)引发异常{

return(value没有任何东西可以阻止您编写自己的。我会编写一个尾部递归函数,在驱动程序上运行并执行所有您想要的操作。上下文可以是维护状态的任何类型的对象或任何您想要做决定的对象

@tailrec
def iterateWhileYouCan[T](data: RDD[T], context: Boolean):RDD[T] = {
    if (context)
      data
    iterateWhileYouCan(awesomeComputation(data), context)
  }