登录
首页 >  数据库 >  MySQL

SparkSQL执行update操作修改mysql数据

来源:SegmentFault

时间:2023-02-16 19:33:54 486浏览 收藏

数据库小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《SparkSQL执行update操作修改mysql数据》带大家来了解一下SparkSQL执行update操作修改mysql数据,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!

这是不需要改源码的方式

//user表样例类
case class User1(id: Long, name: String, password: String, imgUrl: String, update_date: String)

object SparkSQLUpdateMySQLOfJDBC {

  def main(args: Array[String]): Unit = {
    //SparkSession
    val spark: SparkSession = SparkSession.builder()
      .appName("SparkSqlToMysql")
      .master("local")
      .getOrCreate()

    //读取json/csv文件数据
    val df = spark.read.json("data/user.json")
    df.show()
    val data: Array[Row] = df.collect()

    //创建数据库连接
    val connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ssm?characterEcoding=UTF-8",
      "root", "000000")
      
    //声明执行的SQL
    val statement = connection.prepareStatement("update user set name=?, password=?, imgUrl=?, update_date=? where id=?")

    //组装参数
    val now: String = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now)
    data.foreach(
      u => {
        // statement.setObject(sql参数占位符的位置, 样例类的属性)
        statement.setObject(1, u.getString(2))
        statement.setObject(2, u.getString(3))
        statement.setObject(3, u.getString(4))
        statement.setObject(4, now)
        statement.setObject(5, u.getLong(0))
        statement.addBatch() //批量执行
      }
    )

    //执行SQL
    statement.executeBatch()

    spark.stop()
  }
}

写入中文后有出现乱码'??'的情况, 有知道的大佬指点一下

理论要掌握,实操不能落!以上关于《SparkSQL执行update操作修改mysql数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>