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的參數如何設置
總結
以上是生活随笔為你收集整理的rdd与mysql表 join_6、JdbcRDD读取mysql的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 露珠研二狗 下学期猫咪要抱到宿舍养 筒子
- 下一篇: 上海欢乐谷年票多少钱一张