阅读背景:

Spark经典案列之JdbcRDD就不用sqoop了

来源:互联网 

JdbcRDD图示:

代码展现:

object JdbcRddDemo {

  val getConn = () => {
    DriverManager.getConnection("jdbc:mysql://localhost:3306/lj?characterEncoding=UTF-8", "root", "root")
  }

  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setAppName("JdbcRddDemo").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创立RDD,这个RDD会记载以后从MySQL中读数据,new 了RDD,里面没有真正要盘算的数据,而是告知这个RDD,以后触发Action时到哪里读取数据
    val jdbcRDD: RDD[(Int, String, Int)] = new JdbcRDD(  
      sc,
      getConn,
      "SELECT * FROM logs WHERE id >= ? AND id < ?",
      1, //从1 开端读
      5, //到5停止
      2, //分区数目
      rs => {
        val id = rs.getInt(1)
        val name = rs.getString(2)
        val age = rs.getInt(3)
        (id, name, age)
      }
    )
    val r = jdbcRDD.collect() //触发Action
    println(r.toBuffer)
    sc.stop()
  }
}object JdbcRddDemo {

  val 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: