只是想弄清楚处理这种情况的最好方法是什么。我使用dataset.write写入oracle数据库,要求是查找表中是否已存在重复项(不是在数据集中),如果存在,则将这些重复记录写入另一个表中。有谁遇到过类似的问题吗?我要写入的表是一个很大的表,如果在写入数据集之前从该表中读取现有数据并与之进行比较,则开销会很大
使用的savemode是append。它是一个kafka流应用程序,每2分钟连续传输一次数据。
发布于 2018-07-31 05:39:57
没有UPSERT模式,因为我猜你指的是DF.write或DS.write。
问题是,这种重复发生的频率是多少?为什么?如果一个人时不时地滑过,会有什么影响呢?我不倾向于在这种情况下发生重复的键冲突。
如果在逻辑上重复插入很少,并且有适当的基于时间的ORACLE分区来限制要检查的数据量,那么您可以在DBMS端定期执行此操作。
因此,我不会倾向于检查火花方面。这似乎也有点违反直觉,与卡夫卡摄取,并尽快写出来。
一个有趣的问题是,任何做某事的方法都有一些问题需要解决--缓存、重读等在SPARK方面。
https://stackoverflow.com/questions/51591961
复制相似问题