import java.sql.DriverManager
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkConf, SparkContext}
object JdbcRDDDemo {
val getConnection = () => {
DriverManager.getConnection("jdbc:mysql://hadoop01:3306/xiaoniu?characterEncoding=UTF-8", "root", "123456")
}
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local[*]").setAppName("JdbcRDDDemo")
val sc = new SparkContext(conf)
//读取数据库表中的数据
val jdbcRDD: JdbcRDD[(String, Int)] = new JdbcRDD(
//获取spark连接
sc,
//获取数据库连接
getConnection,
//sql语句
"select name,age from emp where id>=? and id<=?",
//查询上界
1,
//下界
4,
//分区
2,
//读取的值
rs => {
val name = rs.getString(1)
val age = rs.getInt(2)
(name,age)
}
)
//打印到窗口
val result = jdbcRDD.collect()
result.foreach(println)
//关闭资源
sc.stop()
}
}