dataset.write() 导致 ORA-00001 spark java
Posted
技术标签:
【中文标题】dataset.write() 导致 ORA-00001 spark java【英文标题】:dataset.write() results in ORA-00001 spark java 【发布时间】:2018-07-30 10:30:09 【问题描述】:只是想弄清楚处理这种情况的最佳方法是什么。我使用 dataset.write 写入 oracle 数据库,要求查找表中是否已经存在重复项(不在数据集中),如果存在则将这些重复记录写入不同的表中。有没有人遇到过类似的问题?我正在写入的表是一个巨大的表,如果我在写入数据集之前从中读取现有数据进行比较,成本会很高
使用的保存模式是 append 。它是一个 kafka 流应用程序,每 2 分钟连续传输数据。
【问题讨论】:
你能提供你正在使用的陈述吗? 你明白了吗? 【参考方案1】:没有 UPSERT 模式,我想你的意思是 DF.write 或 DS.write。
问题是这种重复发生的频率是多少?为什么?如果一个人不时溜走会有什么影响?我不倾向于在这种情况下发生重复的密钥违规。
如果逻辑上重复的插入很少,并且有合适的基于时间的 ORACLE 分区来限制要检查的数据量,那么您可以在 DBMS 端将其作为一个周期性过程来执行。
所以,我不会倾向于检查 SPARK 方面。使用 KAFKA 摄取并尽快将其写出来似乎也有点违反直觉。
一个有趣的问题是,任何做某事的方法都有一些问题需要解决——在 SPARK 端缓存、重新读取等。
【讨论】:
以上是关于dataset.write() 导致 ORA-00001 spark java的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 spark(sqlContext) 在 aws redshift 中写入 csv 数据
从 org.apache.spark.sql.types.StructType 生成 AvroSchema