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

PySpark - partitionBy 到 S3 处理特殊字符

为 impala 表无缝覆盖底层 parquet 数据

写入和回读时火花缺失列

分享一个生产者-消费者的真实场景