我正在一个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)的结果。
答案 0 :(得分:1)
是的,您可以在同一个Delta表上读取N个使用者进程,只需要为每个进程拥有不同的检查点文件即可。