用的本地模式,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. 【Codeforces Round #447 (Div. 2) B】Ralph And His Magic Field

    | [链接] 我是链接,点我呀:) [题意] 给你一个n*m矩阵,让你在里面填数字. 使得每一行的数字的乘积都为k; 且每一列的数字的乘积都为k; k只能为1或-1 [题解] 显然每个位置只能填1或- ...

  2. 通达OA二次开发 对通达2015版微信查询用户信息模块升级开发(图文)

    OA提供对微信的支持这一点做的很好,用户使用起来也更方便了. 而当中的个别功能还有待完好,比现在天要说的这个微信查询用户信息模块. 升级前的用法:输入@+用户中文名.而且要求全然匹配,然而在实际使用中 ...

  3. Day2:字典

    一.定义 字典是一种“key-value”成对出现的数据类型,中间用冒号把key与value隔,不同的数据用逗号隔开,全部数据用大括号括起来 info = { 'stu1101': "Ten ...

  4. 洛谷——P1089 津津的储蓄计划

    https://www.luogu.org/problem/show?pid=1089 https://www.luogu.org/problem/show?pid=1089 题目描述 津津的零花钱一 ...

  5. @EnableAsync和@Async开始异步任务支持

    Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.在开发中实现异步任务,我们 ...

  6. php实现兼容Unicode文字的字符串大写和小写转换strtolower()和strtoupper()

    前言 网上流传着这么一个腾讯笔试题: PHP的strtolower()和strtoupper()函数在安装非中文系统的server下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode ...

  7. ASP.NET配置文件里经常使用到的节点信息

     web.config文件是一个XML文件,是以<confirguration>为根结点展开的. 上一面从宏观上解说了一下有关配置的文件的内容,以下是一些有关于配置文件经常使用的操作. ...

  8. PostgreSQL 序列

    PostgreSQL 中的序列是一个数据库对象,本质上是一个自增器.因此,序列在其他同类型数据库软件中以 autoincrment 值的形式存在.在一张表需要非随机,唯一标实符的场景下,Sequenc ...

  9. OCulus Rift 游戏开发六原则

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/46685477 作者:car ...

  10. centos 查询DNS

    cat  /etc/resolv.conf