spark通过jbdc连接MySQL
来源:互联网 发布:淘宝设置精品橱窗推荐 编辑:程序博客网 时间:2024/05/16 23:50
/*---------------------------------------------------------------------------------------------------------------------------------------------
文章目的: 记录以及梳理自己在spark中通过jdbc 连接mysql 过程的问题和方法
连接本来是不难的东西. 却兜兜转转好一阵. 主要问题出在:1. 经验不够 2.网上的资料版本过旧
这里我自己的spark版本是: version 2.1.0
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_121) //Scala 版本 以及 JDK版本
---------------------------------------------------------------------------------------------------------------------------------------------*/
网上巨多资料 . 但是我觉得应该多看官网 因为 它会随着版本更新 而且比较可靠. 链接贴如下:
http://spark.apache.org/docs/latest/sql-programming-guide.html#datasets-and-dataframes首先 你要知道你当初的下载的 JDBC 的jar 文件在哪. 假设在 /path 中
为了 include the JDBC drive 应用如下命令开启 spark-shell
(假设你已经在 /spark 路径中 否则 spark-shell 路径自行调整)
./bin/spark-shell --driver-class-path /path/mysql-connectot-java-version-bin.jar --jars mysql-connectot-java-version-bin.jar
//具体文件名称请 Tab 大法补全 按理说肯定有更简单的让自动加载的方法 我再找找
//试了一下发现这句不设置也可以...估计是之前已经把 这个jar包放到了 JDK中都 jre内都缘故
接下来介绍一些重要 参数. 详细的请官网 的 JDBC To Other Databases 部分看
url
The JDBC URL to connect to. The source-specific connection properties may be specified in the URL. e.g.,
jdbc:postgresql://localhost/test?user=fred&password=secret
dbtable
The JDBC table that should be read. Note that anything that is valid in a FROM clause of a SQL query can be used. For example, instead of a full table you could also use a subquery in parentheses.
好了 接下来直接进入连接部分. ( Scala 语言描述 其它的看官网 )
// Note: JDBC loading and saving can be achieved via either the load/save or jdbc methods
// Loading data from a JDBC source
val jdbcDF = spark.read//第一种方式
.format("jdbc")
.option("url", "jdbc:mysql:dbserver")
.option("dbtable", "schema.tablename") //注意这里不是写 schema.tablename 我是写tablename才通过的
.option("user", "username")
.option("password", "password")
.load()
val connectionProperties = new Properties()//第二种方式 上下两种read方式你选一种就行
connectionProperties.put("user", "username") //但是要注意第二种方式可能出现Properties无法识别
connectionProperties.put("password", "password") //遇到类似情况直接 import相应类 如此处为 import java.util.Properties;
val jdbcDF2 = spark.read
.jdbc("jdbc:mysql:dbserver", "schema.tablename", connectionProperties)
// Saving data to a JDBC source
jdbcDF.write //第一种方式写
.format("jdbc")
.option("url", "jdbc:postgresql:dbserver")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.save()
jdbcDF2.write //第二种方式写 用到了前面读读 connectionProperties
.jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)
再次提醒:
val jdbcDF2 = spark.read
.jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)
这一段中 "schema.tablename" 并非 "schema."+"yourTableName"的意思,schema应该是别的更细节说明, 这一整个字符串直接填你想操作的表名就可以
另: url字段和我记录的这篇文章格式一致 . 粗略粘贴如下:
jdbc:mysql :// [hostname] [:port] / [dbname] [?param1=value1] [¶m2=value2]…
再具体:
jdbc:mysql: //localhost:3306 /your_DbName?user=root&password=your_password
接下来你就得到了 jdbcDF这样一个 dataFrame 实例了... 然后就可以参考官网的一些说明对它操作了
比如可以试试 jdbcDF.show(); 等等...
实现SQL语句操作:
使用Scala中API进行操作
import java.sql.DriverManager;
val url=" jdbc:mysql://localhost:3306/dbName?useSSL=false&user=root&password=yourPassword"
val conn=DriverManager.getConnection(url);
val prep=conn.prepareStatement("INSERT INTO tableName VALUES( ... )");
prep.executeUpdate; //或者直接 conn.prepareStatement("INSERT INTO tableName VALUES( ... )").executeUpdate;
也可以使用下列利用JAVA API 进行操作
import java.sql.Statement;
val statement=conn.createStatement(); //具体操作可以参考mysql 语法了
val resultSet=statement.executeQuery("SELECT * FROM tableName");
while(resultSet.next()){
val id=resultSet.getInt("id"):
val name=resultSet.getString("name");
pringln("id,name="+id+" "+name);
}
0 0
- spark通过jbdc连接MySQL
- PowerBuilder通过ODBC和JBDC连接mysql数据库
- 在Eclipse连接mysql-----配置jbdc
- MySQL输入密码后闪退(jbdc连接异常)
- JAVA JBDC连接MySql数据库示例心得一
- jbdc连接access
- JBDC+mysql Notes
- Spark SQL通过JDBC连接MySQL读写数据
- JSP案例_利用JBDC连接Mysql数据库,并查询数据
- JAVA JBDC+开源工具连接MySql数据库示例心得二
- jbdc
- spark 连接mysql
- spark连接mysql
- jbdc使用连接池连接oracle
- Spark SQL通过JDBC连接MySQL读写数据实例(比较过时了)
- spark SQL学习(spark连接 mysql)
- 通过Amoeba连接Mysql
- 通过docker连接mysql
- Android渠道打包技术小结
- javascript词法结构
- 3dsMax学习笔记10_VRayMtl材质制作银材质
- 第十一章:Java_多线程
- Hadoop官方文档翻译—— YARN ResourceManager High Availability 2.7.3
- spark通过jbdc连接MySQL
- HDOJ(HDU).1003 Max Sum (DP)
- Linux环境下的三个时间属性以及find指令相关测试
- 、HTML“计算机输出”标签<code><kbd><samp><tt><var><pre>
- 《数据仓库》读书笔记:第一章
- Hadoop官方文档翻译——YARN Architecture(2.7.3)
- BZOJ 4184 线段树+高斯消元
- 写less代码减运算时应注意减号和变量之间必须有空格
- 《数据仓库》读书笔记:第二章