我在

MySQL中有一个带有id和name的测试表,如下所示:

+----+-------+

| id | name |

+----+-------+

| 1 | Name1 |

+----+-------+

| 2 | Name2 |

+----+-------+

| 3 | Name3 |

+----+-------+

我使用Spark DataFrame来读取这些数据(使用JDBC)并修改这样的数据

Dataset modified = sparkSession.sql("select id, concat(name,' - new') as name from test");

modified.write().mode("overwrite").jdbc(AppProperties.MYSQL_CONNECTION_URL,

"test", connectionProperties);

但我的问题是,如果我提供覆盖模式,它会删除上一个表并创建一个新表但不插入任何数据.

我通过读取csv文件(与测试表相同的数据)和覆盖来尝试相同的程序.这对我有用.

我在这里错过了什么吗?

谢谢!

问题出在您的代码中.因为您覆盖了一个您尝试读取的表,所以在Spark实际访问它之前,您会有效地删除所有数据.

请记住,Spark是懒惰的.创建数据集时,Spark会提取所需的元数据,但不会加载数据.因此,没有魔法缓存可以保留原始内容.实际需要时将加载数据.在这里,当您执行写入操作时,当您开始写入时,不再需要获取数据.

你需要的是这样的:

>创建数据集.

>应用所需的转换并将数据写入中间MySQL表.

> TRUNCATE原始输入和INSERT INTO … SELECT从中间表或DROP原始表和RENAME中间表.

替代但不太有利的方法是:

>创建数据集.>应用所需的转换并将数据写入持久性Spark表(df.write.saveAsTable(…)或等效表)> TRUNCATE原始输入.>读取数据并保存(spark.table(…).write.jdbc(…))> Drop Spark表.

mysql overwrite数据_Spark SQL和MySQL-SaveMode.Overwrite不插入修改后的数据相关推荐

  1. 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。...

    程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成 ...

  2. spark 写mysql 设置主键_Spark Sql 连接mysql

    1.基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源.当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD.这是因为 ...

  3. 向MySQL数据库中插入数据,sql语句没问题,但插入失败也不报错?

             这几天在做一个Javaweb的图书商城项目,在操作数据库的过程中,遇到一个问题? 向数据库中的order数据表中插入数据时,一直插入数据失败.没有报SQL语句语法错误,Eclipse ...

  4. 将sql数据导入mysql数据库_将sql导入mysql数据库

    MYSQL导入导出.sql文件 MYSQL导入导出.sql文件 一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=": ...

  5. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...

  6. 疯狂试探mysql单表insert极限:已实现每秒插入8.5w条数据

    很多同学都有这样的困扰: 工作中项目的数据量不大,遇不到sql优化的场景:单表就几万,我优化个der啊: 业务对性能要求不高,远远没达到性能瓶颈:咱这项目又不是不能跑,优化个der啊: 确实,如果你的 ...

  7. mysql递归sql_SQL如何实现MYSQL的递归查询,SQL实现MYSQL递归

    猿哥解读 本文的亮点在于很多PHPer肯定不知道MySQL还能这么用. 所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的.这 ...

  8. 数据库基础--数据库基础管理(创建库/表 以及插入修改删除表数据)

    1.啥子是数据库–存储数据的仓库 2.什么是数据–音乐,电影,文本,图片等 常见的数据库软件 Oracle 不开源 跨平台 厂商:甲骨文 MySQL 开源 跨平台 厂商:甲骨文 SQL Server ...

  9. php mysql 拆分join_PHP拼接Sql,MySql拆分数据(substring_index())作为判断条件

    源码: $partsArr = array(); if($_POST['childType'] != 'eve' && empty($_POST['yearTwo'])) { $ind ...

最新文章

  1. ironpython 教程_「ironpython」VS2017 IronPython做界面
  2. JPA中persistence.xml模板
  3. 网站特效-------旋转的图片
  4. leetcode 621. Task Scheduler | 621. 任务调度器(Java)
  5. npu算力如何计算_CPU、GPU、NPU、FPGA等芯片架构特点分析
  6. 面向对象(OOP)一
  7. php多站点共享用户表,php – Zend_Auth:允许用户登录到多个表/身份
  8. linux的实际作用是什么,libcxxabi在linux下有意义吗?有什么好处?
  9. 小白python自学—报错问题汇总(持续更新)
  10. 【BZOJ3992】【SDOI2015】序列统计
  11. GoogleTest测试框架介绍(二)
  12. Spark源码分析之一:Job提交运行总流程概述
  13. 【githubgirl】如何通过实现一个简单的编译器(TinyC),并借助实例来描述基本的编译原理及过程
  14. 中控考勤机 本地mysql_中控考勤机接口开发
  15. String方法汇总
  16. 7计数 contact form_接近开关和光电开关是一种具有开关量输出的位置传感器
  17. 苹果手机怎么备份通讯录?
  18. AI出奇迹!人工智能创造出世界首项体育运动,还充满享受、包容精神
  19. 知网复制太麻烦了?试试这个方法
  20. 用Python获取大众点评上长沙口味虾店铺信息,并进行数据分析

热门文章

  1. 如何批量给文件名加序号?
  2. LeetCode 1049. 最后一块石头的重量 II 做题小结
  3. 关于Kubernetes中使用Helm部署应用及私有Helm源搭建的一些笔记
  4. Ambassador介绍
  5. 直播弹幕 html5,一种基于HTML5的弹幕播放器及其方法与流程
  6. 无人审批刷脸办照 广州上线全程电子化商事登记系统;法国巴黎银行推出人工智能系统用于加强交易处理...
  7. LayaAir Typescript安装过程详解
  8. Vue.js基础-09-组件(Component)
  9. Opencv 打开笔记本摄像头
  10. iPhone图片设计问题