rdd与mysql表 join_6、JdbcRDD读取mysql的数据

其实在Spark-Core中也可以向Java一样读取数据库的信息,Spark的JdbcRDD就可以实现这种功能, 它可以将数据加载到RDD中,然后再按照RDD中的方法进行处理,比如:sortBy,join,fielter等等。

#代码如下: -------------------------------------------------------------------------------- package com.liufu.org.core

import java.sql.DriverManager

import org.apache.spark.rdd.JdbcRDD

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

/**

* Created by liufu on 2016/11/18.

*/

object JdbcRDDTest {

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

val conf: SparkConf = new SparkConf().setAppName("jdbcRDD").setMaster("local[2]")

val sc: SparkContext = new SparkContext(conf)

//定义一个连接函数,后面需要传入给JdbcRDD的主构造器中。

val connection = ()=>{

Class.forName("com.mysql.jdbc.Driver").newInstance()

DriverManager.getConnection("jdbc:mysql://localhost:3306/bigdata","root","815325")

}

val resultRDD = new JdbcRDD(

sc, //SparkContext

connection, //连接数据库的函数

"select * from dept where deptno >= ? and deptno <= ?",20,40, //SQL语句,后面两个是SQL语句中需要填入的参数,就算不需要填写参数,也要补全

2, //本次操作的结果,分为多少个区。

r => { //将结果循环遍历,然后组装成tuple返回,当然也可以组装成String等类型。

(r.getString(1),r.getString(2))

}

)

println(resultRDD.collect().toBuffer)

sc.stop()

}

}

--------------------------------------------------------------------------------

#总结: 主要是那个JdbcRDD的参数如何设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值