用的本地模式,pom.xml中添加了mysql驱动包,mysql已经开启,写入的时候发现用format("jdbc").save()的方式发现会有does not allow create table as select的异常,于是去官方文档上发现了使用jdbc()的方式,测试

正常,说明下Properties是java.util.Properties

java

 public class Demo {
private static SparkSession session = SparkSession.builder().appName("demo").master("local").getOrCreate(); public static void main(String[] args) {
Map<String, String> options = new HashMap<>();
options.put("url", "jdbc:mysql://127.0.0.1:3306/studentmanage");
options.put("driver", "com.mysql.jdbc.Driver");
options.put("dbtable", "studentmanage.admin");
options.put("user", "root");
options.put("password", "root"); // 读取
Dataset<Row> dataset = session.read().format("jdbc").options(options).load();
dataset.show(); // 创建数据
List<Row> list = new ArrayList<Row>();
Row row1 = RowFactory.create("tele", "123", "male", "China", 1, "admin");
Row row2 = RowFactory.create("wyc", "123", "male", "China", 1, "admin");
Row row3 = RowFactory.create("xxx", "123", "male", "China", 1, "admin");
list.add(row1);
list.add(row2);
list.add(row3); // 写入
StructType schema = DataTypes
.createStructType(Arrays.asList(DataTypes.createStructField("name", DataTypes.StringType, false),
DataTypes.createStructField("pwd", DataTypes.StringType, false),
DataTypes.createStructField("sex", DataTypes.StringType, false),
DataTypes.createStructField("nation", DataTypes.StringType, false),
DataTypes.createStructField("status", DataTypes.IntegerType, false),
DataTypes.createStructField("type", DataTypes.StringType, false))); Dataset<Row> ds = session.createDataFrame(list, schema); Properties connectionProperties = new Properties();
connectionProperties.put("user", "root");
connectionProperties.put("password", "root"); // 也可以对dataset进行遍历使用原生的jdbc或者dbutils等进行写入
ds.write().mode(SaveMode.Append).jdbc("jdbc:mysql://127.0.0.1:3306/studentmanage", "admin",
connectionProperties); session.stop();
}
}

scala

 object Demo {
def main(args: Array[String]): Unit = {
val session = SparkSession.builder().appName("demo").master("local").getOrCreate() val options = Map[String, String](
("url", "jdbc:mysql://127.0.0.1:3306/studentmanage"),
("driver", "com.mysql.jdbc.Driver"),
("dbtable", "studentmanage.admin"),
("user", "root"),
("password", "root")) //读取
val df = session.read.options(options).format("jdbc").load() df.show() //写入
val arrBuffer = Array(Row("yeye", "123", "male", "us", 1, "admin")).toBuffer val schema = DataTypes.createStructType(Array(
StructField("name", DataTypes.StringType, false),
StructField("pwd", DataTypes.StringType, false),
StructField("sex", DataTypes.StringType, false),
StructField("nation", DataTypes.StringType, false),
StructField("status", DataTypes.IntegerType, false),
StructField("type", DataTypes.StringType, false))) val result = session.createDataFrame(arrBuffer, schema) val properties = new Properties
properties.put("user", "root")
properties.put("password", "root") result.write.mode(SaveMode.Append).jdbc("jdbc:mysql://127.0.0.1:3306/studentmanage", "admin", properties) session.stop
}
}

sparksql jdbc数据源的更多相关文章

  1. SparkSQL JDBC和JDBCServer区别

    注意SparkSQL JDBC和SparkSQL JDBCSever是完全两种不同的场景. SparkSQL JDBC SparkSQL可以使用JDBC的方式访问其他数据库,和普通非spark程序访问 ...

  2. SparkSql自定义数据源之读取的实现

    一.sparksql读取数据源的过程 1.spark目前支持读取jdbc,hive,text,orc等类型的数据,如果要想支持hbase或者其他数据源,就必须自定义 2.读取过程 (1)sparksq ...

  3. Tomcat中使用JNDI加载JDBC数据源

    以前写JDBC的时候总是手工写一个类,用硬代码写上className.url.用户名和密码什么的,然后通过DriverManager获取到Connection.那样写是很方便,但是如果想更改的话,需要 ...

  4. spring中配置jdbc数据源

    1.加入jdbc驱动器包,mysql-connector-java.jar 2.加入commons-dbcp.jar配置数据源 3.在classpath下新建文件jdbc.properties,配置j ...

  5. weblogic配置jdbc数据源

    weblogic配置jdbc数据源的过程 方法/步骤   启动weblogic 管理服务器,使用管理用户登录weblogic管理控制台   打开管理控制台后,在左侧的树形域结构中,选择服务->数 ...

  6. JDBC数据源 使用JNDI连接池实现数据库的连接

    0.引言 许多Web应用程序需要通过JDBC驱动程序访问数据库,以支持该应用程序所需的功能.Java EE平台规范要求Java EE应用程序服务器为此目的提供一个DataSource实现(即,用于JD ...

  7. JDBC数据源连接池(4)---自定义数据源连接池

    [续上文<JDBC数据源连接池(3)---Tomcat集成DBCP>] 我们已经 了解了DBCP,C3P0,以及Tomcat内置的数据源连接池,那么,这些数据源连接池是如何实现的呢?为了究 ...

  8. JDBC数据源连接池(3)---Tomcat集成DBCP

    此文续<JDBC数据源连接池(2)---C3P0>. Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池.在使用中,只要进行相应配置即可. 首先,确保Web ...

  9. JDBC数据源连接池(2)---C3P0

    我们接着<JDBC数据源连接池(1)---DBCP>继续介绍数据源连接池. 首先,在Web项目的WebContent--->WEB-INF--->lib文件夹中添加C3P0的j ...

随机推荐

  1. MySQL主从复制之Mycat简单配置和高可用

    什么是Mycat 1.Mycat就是MySQL Server,而Mycat后面连接的MySQL Server,就好象是MySQL的存储引擎,如InnoDB,MyISAM等.因此,Mycat本身并不存储 ...

  2. 洛谷 P2430 严酷的训练

    P2430 严酷的训练 题目背景 Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位... 题目描述 他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子. 老王的训练方式很奇怪,他会 ...

  3. Android多线程研究(6)——多线程之间数据隔离

    在上一篇<Android多线程研究(5)--线程之间共享数据>中对线程之间的数据共享进行了学习和研究,这一篇我们来看看怎样解决多个线程之间的数据隔离问题,什么是数据隔离呢?比方说我们如今开 ...

  4. NYOJ448_寻找最大数【贪心】

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比方当n=920813467185 ...

  5. Project Euler 613 Pythagorean Ant(概率+积分)

    题目链接:点击我打开题目链接 题目大意: 给你一只蚂蚁,它在一个 边长为 \(30-40-50\) 的直角三角形\((x,y)\)上,并且它在直角三角形中选择的位置和移动方向的概率都是相等的.问你这只 ...

  6. Android RxJava基本流程和lift源码分析

    基本结构 我们先来看一段最基本的代码,分析这段代码在RxJava中是如何实现的. Observable.OnSubscribe<String> onSubscriber1 = new Ob ...

  7. 关于JS的面向对象总结

    什么是面向对象: 对象由两部分构成:属性 和 方法: 面向对象的特点: 1.封装:对于相同功能的代码,放在一个函数中,以后再用到此功能,只需要调用即可,无需再重写:避免大量冗余代码: 专业话说:低耦合 ...

  8. Javascript和jquery事件--鼠标右键事件,contextmenu

    右键点击触发是浏览器的默认菜单事件contextmenu,你可以选择阻止它,使用event.preventDefault();或者return false;. 想要定义右键点击事件,关注的是mouse ...

  9. APP功能点测试

    一.移动互联网特点: 1,用户体验至上:精准的用户体验 2,核心竞争力:市场占有率和业务创新能力 3,营销模型:通过口碑传播吸引客户,随之参与互动(如分享等,对接口测试要求高) 二.项目特点: 1,开 ...

  10. 三个Bootstrap免费字体和图标库

    前言:Bootstrap 简洁.直观.强悍.移动设备优先的前端开发框架,让web开发更迅速.简单 ,深入了解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好.更快, 组件无数 ...