rdd与mysql表 join_6、JdbcRDD读取mysql的数据
其實(shí)在Spark-Core中也可以向Java一樣讀取數(shù)據(jù)庫(kù)的信息,Spark的JdbcRDD就可以實(shí)現(xiàn)這種功能, 它可以將數(shù)據(jù)加載到RDD中,然后再按照RDD中的方法進(jìn)行處理,比如: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)
//定義一個(gè)連接函數(shù),后面需要傳入給JdbcRDD的主構(gòu)造器中。
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, //連接數(shù)據(jù)庫(kù)的函數(shù)
"select * from dept where deptno >= ? and deptno <= ?",20,40, //SQL語(yǔ)句,后面兩個(gè)是SQL語(yǔ)句中需要填入的參數(shù),就算不需要填寫參數(shù),也要補(bǔ)全
2, //本次操作的結(jié)果,分為多少個(gè)區(qū)。
r => { //將結(jié)果循環(huán)遍歷,然后組裝成tuple返回,當(dāng)然也可以組裝成String等類型。
(r.getString(1),r.getString(2))
}
)
println(resultRDD.collect().toBuffer)
sc.stop()
}
}
--------------------------------------------------------------------------------
#總結(jié): 主要是那個(gè)JdbcRDD的參數(shù)如何設(shè)置
總結(jié)
以上是生活随笔為你收集整理的rdd与mysql表 join_6、JdbcRDD读取mysql的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 露珠研二狗 下学期猫咪要抱到宿舍养 筒子
- 下一篇: mysql.data.dll win10