rdd从mysql中获取数据案例

package sparkRdd_practice
import java.sql.DriverManager
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkConf, SparkContext}
/**
  * @Description * @Author 黄仁议<[email protected]>
  * @Version V1.0
  * @Since 1.0
  * @Date 2019/5/31 0031 14:34
  * @Description * @ClassName JdbcRDDDemo
  */
object JdbcRDDDemo {
  def main (args: Array[String]): Unit = {
    val conf:SparkConf = new SparkConf().setAppName("JdbcDemo").setMaster("local[4]")
    val sc:SparkContext = new SparkContext(conf)

    val jdbcurl = "jdbc:mysql://10.0.16.64:3306/mydb?useUnicode=true&characterEncoding=utf8"
    val user = "root"
    val password = "hry110"

    //sql 语句
    val sql = "select * from t_stu where id >=? and id <=?"
    //创建数据库连接
    val conn = ()=>{
      Class.forName("com.mysql.jdbc.Driver").newInstance()
      DriverManager.getConnection(jdbcurl,user,password)
    }
    val jRDD:JdbcRDD[(Int,String,String,Float)]=new JdbcRDD(sc,conn,sql,0L,10L,1,resultSet=>
    {
     val id= resultSet.getInt("id")
      val sname=resultSet.getString("sname")
      val scourse=resultSet.getString("scourse")
      val sscore=resultSet.getFloat("sscore")
      (id,sname,scourse,sscore)
    })
    jRDD.foreach(println)
    sc.stop()
  }

}

猜你喜欢

转载自blog.csdn.net/weixin_43562705/article/details/91045245
今日推荐