1.连接本地数据库
package sparkSQL import java.sql.DriverManager import org.apache.spark.rdd.JdbcRDD import org.apache.spark.{SparkConf, SparkContext} object JDBCSQL { def main(args: Array[String]): Unit = { val sconn=new SparkConf().setAppName("SQL").setMaster("local[*]") val sc=new SparkContext(sconn) val jdbcUrl = "jdbc:mysql://localhost:3306/jingdong?useUnicode=true&characterEncoding=utf8" val user = "root" val password = "wo123456" val conn = () => { Class.forName("com.mysql.jdbc.Driver").newInstance() DriverManager.getConnection(jdbcUrl, user, password) } val sql = "select * from product where pid between ? and ? " val jdbcRDD: JdbcRDD[(Int, String)] = new JdbcRDD(sc, conn, sql, 0, 30, 3, res => { val id = res.getInt("pid") val makeName = res.getString("pname") (id, makeName) } ) println(jdbcRDD.collect().toBuffer) sc.stop() } } |
连接linux远程数据库
package sparkSQL import java.sql.DriverManager import org.apache.spark.rdd.JdbcRDD import org.apache.spark.{SparkConf, SparkContext} object sqlConnLinux { def main(args: Array[String]): Unit = { val conf=new SparkConf().setAppName("sql1").setMaster("local[*]") val sc=new SparkContext(conf) //linux数据库的配置 val jdbc1="jdbc:mysql://hh:3306/w01?useUnicode=true&characterEncoding=utf8" val user = "root" val password = "root" val conn=()=>{ Class.forName("com.mysql.jdbc.Driver").newInstance() DriverManager.getConnection(jdbc1,user,password) } val sql="select * from orders where id between ? and ? " val jdbcRDD1:JdbcRDD[(Int,String)]=new JdbcRDD(sc,conn,sql,0,30,3, res=>{ val id=res.getInt("id") val retail=res.getString("retail") (id,retail) } ) println(jdbcRDD1.collect().toBuffer) sc.stop() } } |