Apache spark 火花流中的顺序处理
是否可以在Spark流媒体中实施顺序处理?我们的用例是从Kafka读取事件,其中每个主题都需要按顺序处理Apache spark 火花流中的顺序处理,apache-spark,spark-streaming,Apache Spark,Spark Streaming,是否可以在Spark流媒体中实施顺序处理?我们的用例是从Kafka读取事件,其中每个主题都需要按顺序处理 据我所知,这是不可能的——每个数据流都被分解成RDD,并且RDD是并行处理的,所以无法保证顺序 您可以将RDD强制为单个分区,从而消除任何并行性。我们的用例是从Kafka读取事件,其中每个主题都需要按顺序处理 根据我的理解,每个主题形成一个独立的数据流。因此,您应该一个接一个地处理每个数据流 但最有可能的意思是,您希望按顺序处理从卡夫卡主题中获得的每个事件。在这种情况下,您不应该依赖于RDD
据我所知,这是不可能的——每个数据流都被分解成RDD,并且RDD是并行处理的,所以无法保证顺序 您可以将RDD强制为单个分区,从而消除任何并行性。我们的用例是从Kafka读取事件,其中每个主题都需要按顺序处理 根据我的理解,每个主题形成一个独立的数据流。因此,您应该一个接一个地处理每个数据流 但最有可能的意思是,您希望按顺序处理从卡夫卡主题中获得的每个事件。在这种情况下,您不应该依赖于RDD中记录的顺序,而是应该在第一次看到记录时(可能是在上游)用时间戳标记每个记录,并在以后使用此时间戳进行排序 您还有其他不好的选择:)
但是数据流被分解成RDD——难道第二个RDD不可能在第一个RDD之前完成处理吗?根据文档“默认情况下,输出操作一次执行一个。并且按照应用程序中定义的顺序执行。”