![13f7373284246d5d37932ebc81134000.png](https://i-blog.csdnimg.cn/blog_migrate/25fcf4e34b3829fad3f544660b590b8f.jpeg)
Spark SQL支持通过JDBC直接读取数据库中的数据,这个特性是基于JdbcRDD实现。返回值作为DataFrame返回,这样可以直接使用Spark SQL并跟其他的数据源进行join操作。JDBC数据源可以很简单的通过Java或者Python,而不需要提供ClassTag。注意这与Spark SQL JDBC server不同,后者是基于Spark SQL执行查询。
要保证能使用需要把对应的jdbc驱动放到spark的classpath中。比如,想要连接postgres可以在启动命令中添加jars:
bin/spark-shell
--driver-class-path postgresql-9.4.1207.jar
--jars postgresql-9.4.1207.jar
远程数据库的表可以加载成DataFrame或者注册成Spark SQL的临时表,用户可以在数据源选项中配置JDBC相关的连接参数。user和password一般是必须提供的参数,另外一些参数可以参考下面的列表:
url
JDBC连接url,比如jdbc:postgresql://localhost/test?user=fred&password=secret
dbtable
需要读取或者写入的JDBC表,注意里面的内容将会作为from后面的部分,比如 select