Spark JdbcRDD

来源:互联网 发布:淘宝链接被删除 编辑:程序博客网 时间:2024/06/05 18:06

JdbcRDD 用来链接数据库,直接重数据库中获取数据分析。

JdbcRDD有6个参数 。
1、 sc SparkContext 类型变量
2、链接 jdbc的链接对象
3、sql语句,一般为查询语句
4和5 、为上下边界。
6、partitions 分区数
最后一个 参数,里面存放的是执行sql语句的返回值。

JdbcRDD[T: ClassTag](    sc: SparkContext,    getConnection: () => Connection,    sql: String,    lowerBound: Long,    upperBound: Long,    numPartitions: Int,    mapRow: (ResultSet) => T = JdbcRDD.resultSetToObjectArray _)

配上demo

 val conf = new SparkConf().setAppName(this.getClass().getSimpleName().filter(!_.equals('$'))).setMaster("local")    val sc = new SparkContext(conf)    val rdd = new JdbcRDD(      sc,      () => {        Class.forName("com.mysql.jdbc.Driver").newInstance()        DriverManager.getConnection("jdbc:mysql://localhost:3306/spark_test", "root", "root")      },      "SELECT * FROM spark_user WHERE userid >= ? AND userid <= ?",      1,      11,      3,      rs => {        val username = rs.getString(2)        val pwd = rs.getString(3)        (username,pwd)      })    rdd.foreach(su=>{      println(su._1+"->"+su._2)    })    sc.stop()
0 0
原创粉丝点击