【发布时间】:2019-08-09 16:48:03
【问题描述】:
我使用 Spark 2.3.2。
我正在从 Kafka 接收数据。我必须对同一数据进行多次聚合。然后所有聚合结果将进入同一个数据库(列或表可能会更改)。例如:
val kafkaSource = spark.readStream.option("kafka") ...
val agg1 = kafkaSource.groupBy().agg ...
val agg2 = kafkaSource.groupBy().mapgroupswithstate() ...
val agg3 = kafkaSource.groupBy().mapgroupswithstate() ...
但是当我尝试为每个聚合结果调用 writeStream 时:
aggr1.writeStream().foreach().start()
aggr2.writeStream().foreach().start()
aggr3.writeStream().foreach().start()
Spark 在每个 writeStream 中独立接收数据。这种方式有效吗?
我可以用一个 writeStream 进行多个聚合吗?如果可以的话,这种方式效率高吗?
【问题讨论】:
标签: apache-spark apache-spark-sql spark-structured-streaming