基于Spark下的查询数据库中信息Demo

95 篇文章 0 订阅
29 篇文章 2 订阅
import java.sql.DriverManager

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

object JDBCRDDDemo extends App {
  val conf = new SparkConf().setAppName("JDBCRDDDemo").setMaster("local[2]")
  val sc = new SparkContext(conf)

  val connection = ()=>{
    //获取驱动
    Class.forName("com.mysql.jdbc.Driver").newInstance()
    //建立连接
    DriverManager.getConnection("jdbc:mysql:///video","root","123456")
  }
 /* 源码class JdbcRDD[T](sc : org.apache.spark.SparkContext,
 getConnection : scala.Function0[java.sql.Connection],
  sql : scala.Predef.String,
  lowerBound : scala.Long,
   upperBound : scala.Long,
   numPartitions : scala.Int,
   mapRow : scala.Function1[java.sql.ResultSet, T] = {
   /* compiled code */ })
   (implicit evidence$1 : scala.reflect.ClassTag[T]) extends org.apache.spark.rdd.RDD[T] with org.apache.spark.Logging {
    override def getPartitions : scala.Array[org.apache.spark.Partition] = { /* compiled code */ }
    override def compute(thePart : org.apache.spark.Partition, context : org.apache.spark.TaskContext) : scala.Iterator[T] = { /* compiled code */ }
  }*/
  val jdbcRdd = new JdbcRDD(sc,
    connection,
  "select * from user where id >= ? and id <= ?",
    10,
    20,
    2,
    r =>{
      val id = r.getInt(1)
      val email = r.getString(2)
      (id,email)
    })

  val jrdd = jdbcRdd.collect()
  println(jrdd.toBuffer)
  sc.stop()
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值