分享

SparkSQL 使用jdbcRDD访问数据库





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

1.png

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, 也需要导入包:

2.png

代码如下:
[mw_shl_code=java,true]import java.sql.DriverManager
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkContext}

object HiSpark {
  def main (args: Array[String]) {
    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)
  }
}[/mw_shl_code]

查到的数据如下:

3.png

相关参数说明:

4.png




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条