desehawk 发表于 2015-5-24 15:32:25

SparkSQL 使用jdbcRDD访问数据库





mysql中有一个数据库为luciusdb,其中有一张表people,有8条数据。



1、如果采用spark-shell来访问数据库,可以像下面那样在启动spark-shell时在命令之前加上“SPARK_CLASSPATH=驱动包”来 导入数据库驱动:
SPARK_CLASSPATH=/opt/spark-1.3.0/lib/mysql-connector-java-5.1.35.jar bin/spark-shell


2、如果采用IDEA, 也需要导入包:



代码如下:
import java.sql.DriverManager
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkContext}

object HiSpark {
def main (args: Array) {
    val sc = new SparkContext("local", "mysql")
    val rdd = new JdbcRDD(
      sc,
      () => {
      Class.forName("com.mysql.jdbc.Driver").newInstance()
      DriverManager.getConnection("jdbc:mysql://192.168.70.135:3306/luciusdb", "root", "123456")
      },
      "SELECT * FROM people where id>=? and id <=?",
      1, 4, 2,
      r =>r.getString(3) + " " + r.getString(1) + " " +r.getString(2)
    )
    rdd.foreach(println)
}
}

查到的数据如下:



相关参数说明:






页: [1]
查看完整版本: SparkSQL 使用jdbcRDD访问数据库