【DataFrame,DataStream,RDD→导入MySQL】

将 这些数据集  存入MySQL中的众多方法  的其中一种

58def77d22394000b611f38490558663.png

【Dataframe存入MySQL】

   //DataFrame 存入  Mysql

    //指定URL
    val url="jdbc:mysql://localhost:3306/wc"

    //指定要存入的表  (不存在会自动创建)
    val table="result_pv";

    //设置配置文件
    val properties = new Properties()
    properties.setProperty("user","root")
    properties.setProperty("password","123456")
    //执行
    df.write.mode("append").jdbc(url,table,properties)

【DataStream存入MySQL】

        foreachRDD:作用于Dstream中每一个时间间隔的RDD

        foreachPartition:作用于Dstream中每一个时间间隔的RDD中的每一个Partition

​
    //DataStream  存入  Mysql

    inm.foreachRDD(item=>{item.foreachPartition(item=>{

      //获取连接
            val connection = DriverManager
            .getConnection("jdbc:mysql://localhost:3306/wc", "root", "123456")

      //Sql语句
            val sql="INSERT INTO `wc`.`sc` (`tel`, `num`) VALUES (?, ?);"
            val ps = connection.prepareStatement(sql)

      //循环处理
            for (elem <- item) {
              ps.setString(1,elem._1)
              ps.setInt(2,elem._2)
              ps.executeUpdate()
            }
    })})

​

【RDD存入MySQL】

        方法还是跟上面的 Dstream存MySQL一样  就是通过foreachRDD 将 Dstream转成RDD

        所有这里就直接foreachPartition就可以进行存储数据操作

    // RDD  存入  Mysql 

    six.foreachPartition(item=>{

      //获取连接
      val connection = DriverManager
      .getConnection("jdbc:mysql://localhost:3306/wc", "root", "123456")

      //sql语句
      val sql="INSERT INTO `wc`.`six` (`one`, `two`, `three`) VALUES (?, ?, ?);"
      val ps = connection.prepareStatement(sql)

      //循环处理
      for (elem <- item) {
        ps.setString(1,elem._1)
        ps.setString(2,elem._2.toString)
        ps.setString(3,elem._3.toString)
        ps.executeUpdate()
      }
    })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值