MySql教程

加载mysql数据得到RDD

本文主要是介绍加载mysql数据得到RDD,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

加载mysql数据得到RDD

import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkConf, SparkContext}


import java.sql.{Connection, DriverManager, ResultSet}

case class Soldier(id:Int,name:String,role:String,battle:Double)


object 加载mysql数据得到RDD {
  def main(args: Array[String]): Unit = {


    val conf = new SparkConf()
    conf.setAppName("加载数据库数据示例")
    conf.setMaster("local")


    val sc = new SparkContext(conf)


    // 加载mysql中的表


    // 定义一个创建jdbc连接的函数
    val getConn = ()=>{
      DriverManager.getConnection("jdbc:mysql://localhost:3306/abc", "root", "123456")
    }


    // 定义一个查询数据用的sql
    val sql = "select  * from battel where id>=?  and id<=?"


    // 定义一个数据映射逻辑(函数): 映射每一行查询结果到目标数据类型
    val mapRow = (rs:ResultSet)=>{


      val id: Int = rs.getInt(1)
      val name: String = rs.getString(2)
      val role: String = rs.getString(3)
      val battle: Double = rs.getDouble(4)


      Soldier(id,name,role,battle)
    }


    // 直接构造一个JdbcRDD来映射mysql中的表数据
    val rdd: JdbcRDD[Soldier] = new JdbcRDD[Soldier](sc, getConn, sql, 1, 100, 2, mapRow)


    rdd.foreach(println)
    sc.stop()
  }
}
这篇关于加载mysql数据得到RDD的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!