在sparksql 中,保存数据到数据,只有 Append , Overwrite , ErrorIfExists, Ignore 四种模式,不满足项目需求 ,现依据 spark save 源码,进行进一步的改造, 批量保存数据,存在则更新 不存在 则插入
**
*测试用例
* 批量保存数据,存在则更新 不存在 则插入
* INSERT INTO test_001 VALUES( ?, ?, ? )
* ON conflict ( ID ) DO
* UPDATE SET id=?,NAME = ?,age = ?;
* @author linzhy
*/
object InsertOrUpdateTest {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName(this.getClass.getSimpleName)
.master("local[2]")
.config("spark.debug.maxToStringFields","100")
.getOrCreate()
var config = ConfigFactory.load()
val ods_url = config.getString("pg.oucloud_ods.url")
val ods_user = config.getString("pg.oucloud_ods.user")
val ods_password = config.getString("pg.oucloud