apache spark流左外连接输出记录

ldxq2e6h  于 2021-06-06  发布在  Kafka
关注(0)|答案(0)|浏览(287)

我们正在开发spark流媒体应用程序,它从kafka获取数据。我们有producer,它从一个有150万条记录的文件向kafka发布数据。在150万条记录中,a型记录有100万条,b型记录有50万条。在这个文件中,我们有50万条记录具有相同的列值,将用于加入spark流。
所以在spark流中,我们做这两个流的左外连接(a左外连接b)。因此,预期的输出应该有100万条记录(50万条记录是内部连接,50万条记录是来自左流的空连接)。
但是,对于不同的水印,我们收到了不同的输出计数:1)如果我们将水印提供为15分钟,则会收到50万条记录(内部连接)和50万条记录(不匹配的记录为空)。
2) 如果我们提供2分钟的水印,我们会收到超过100万条记录(大约110万条记录),其中我们发现输出文件有重复的记录(作为内部连接的一部分的记录也显示为空连接的一部分)
请帮助我理解为什么在水印中提供较少的时间时,左外连接会发出更多的记录。
当我说更多的数字记录时,我的意思是它发出的记录是:->匹配的(50万)+不匹配的记录(50万来自左流的空值)+10万来自左流的空连接记录。
这10万条记录是额外的记录,它们已经是内部连接(50万条)的一部分,并且仍然是来自左流的空连接。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题