sparkSession.read.jdbc(MYSQLDBURL, "user_info", properties) .createTempView("v") //hive中的这两个时间的最大值 => hive 命令行查看 select max(operate_time) from ods.user_info ==>2023-12-11 // select max(create_time) from ods.user_info ==>2023-11-11 val maxTime = sparkSession.sql( """ |from ods.user_info |select case | when operate_time > create_time then operate_time | when operate_time < create_time then create_time | else create_time end as `incrementvalue` |order by `incrementvalue` desc |limit 1 |""".stripMargin).collect()(0).get(0).toString println(s"最大时间 :${maxTime}")
sparkSession.sql( s""" |insert into ods.user_info partition(etldate="20230319") |from ( | from v select * | where operate_time > cast('$maxTime' as TIMESTAMP) or create_time > cast('$maxTime' as TIMESTAMP)) |""".stripMargin) sparkSession.sql( """ |select * from ods.user_info limit 10 |""".stripMargin).show(false) sparkSession.stop()