是否可以让两个Spark进程同时读取一个Delta表中的流?

时间:2019-04-18 07:44:36

标签: apache-spark spark-streaming databricks

我正在一个Delta表中接收数据,并且我想让两个使用者处理该表:

我在不同的罐子里有以下代码:

1)一个用于实时计算聚合的Spark过程。

val df_aggregations = spark.readStream
     .format("delta")
     .option("ignoreDeletes", "true")
     .option("ignoreChanges", "true")
     .option("checkpointLocation", configuration.delta_aggregation_checkpoint)
     .load(configuration.delta_table)

2)一个Spark流程,用于实时获取新值。

val df_news = spark.readStream
.format("delta")
.option("ignoreDeletes", "true")
.option("ignoreChanges", "true")
.option("checkpointLocation", configuration.delta_news_checkpoint)
.load(configuration.delta_table)

我的问题是,我只看到其中一个流程运行良好,我的意思是,如果我先运行流程1)而不是运行流程2)我看到流程1)的良好结果,但是,我看不到流程的结果流程2),并且如果我先运行流程2),那么我会看到流程2)的结果,但看不到流程1)的结果。

1 个答案:

答案 0 :(得分:1)

是的,您可以在同一个Delta表上读取N个使用者进程,只需要为每个进程拥有不同的检查点文件即可。