用Spark写入Mysql的特别注意事项

news2024/11/25 4:44:04

相信有部分刚入门的小伙伴对于spark写入Mysql的过程不太熟悉。特意写一篇文章讲一下这个注意事项,以免“上大当”

我们先看一个小伙伴写的一段spark写入mysql的代码


    public static void trans(SparkSession spark,
                             String pro_table, String pro_url, String pro_driver, String pro_user, String pro_password,
                             String dev_table, String dev_url, String dev_driver, String dev_user, String dev_password){
        //根据连接得到mysql数据
        Dataset<Row> data = spark.read()
                .jdbc(pro_url, pro_table, properties(pro_driver,pro_user,pro_password));

        //显示部分mysql的数据
        data.show();
        data.write().format("jdbc")
                .mode(SaveMode.Overwrite)
                .option("url", dev_url)
                .option("dbtable",dev_table)
                .option("user", dev_user)
                .option("password", dev_password)
                .option("driver",dev_driver)
                .save();
    }

由上我们可以发现,他选了一个Overwrite模式,这个模式有啥效果呢?我们可以继续往下看

在这里插入图片描述saveMode一共有四种可选模式,其中有一个叫Overwrite模式,这个模式我们去找一段关于他执行过程的一段源码来分析(重点来了)
如下图
在这里插入图片描述
我们可以看到,如果你在save过程中填入了truncate参数,且原表支持truncate,那么他就会先把表给清空,然后再直接保存。但是(敲重点!!!),要是没有填入truncate参数或者原表不支持truncate,那么它就会把表删除掉,然后按照它所读取到的结构重新生成表,最后保存数据,这样的操作主要会造成原表的结构会丢失,例如,主键自增,原表的字段的描述,字段的索引等。所以用Overwrite模式时一定要慎重。


好了重点介绍完了,我们也可以看看其他模式的执行过程(贴上源码自行理解=,=)
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务框架 SpringCloud微服务架构 服务异步通讯 52 惰性队列 52.1 消息堆积问题

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 服务异步通讯 文章目录微服务框架服务异步通讯52 惰性队列52.1 消息堆积问题52.1.1 消息堆积问题52 惰性队列 52.1 消息堆积问题 52.1.1 消…

11基于主从博弈理论的共享储能与综合能源微网优化运行研究(MATLAB程序)

参考文献&#xff1a; 基于主从博弈理论的共享储能与综合能源微网优化运行研究——帅轩越&#xff08;2022电网技术&#xff09; 主要内容; 代码主要做的是基于主从博弈理论的共享储能与综合能源微网优化运行研究&#xff0c;首先介绍了系统运行框架&#xff0c;分析了系统内…

一文了解各种高精度室内定位技术

在消费需求和创新技术驱动下&#xff0c;可穿戴设备和物联网产品的发展驶入了快车道&#xff0c;GNSS定位功能在无人驾驶、智能设备、资产追踪等日趋智能化中广泛应用&#xff0c;而随着万物互联时代的到临&#xff0c;物联网技术围绕人员、资产的室内位置服务需求也愈加强烈。…

vue使用

目录 路由History模式打包页面空白 项目放根目录 -- 配置 项目放二级目录 -- 配置 路由History模式打包页面空白 项目放根目录 -- 配置 router > index.js 修改 base const router new VueRouter({mode: history,// base: process.env.BASE_URL,base: /,routes, }) ngi…

【Redis集群专题】「集群技术三部曲」介绍一下常用的Redis集群机制方案的原理和指南(入门篇)

集群化的方案 Redis的Sentinel解决了主从复制故障不能自动迁移的问题&#xff0c;但是主节点的写性能和存储能力依然是受到了Redis单机容量有限的限制&#xff0c;所以使用Redis集群去解决这个问题&#xff0c;将Redis的数据根据一定的规则分配到多台机器。 Redis集群方案 R…

【git】

目录第一章 简介 1&#xff0e;1 版本控制 1.1.1 本地版本控制1.1.2 集中式版本控制1.1.3 分布式版本控制 第二章 基础篇 2.1 下载代码 2.2 更新代码 2.2.1 清空本地未被跟踪内容2.2.2更新代码使之与库上同步 2.3 修改 2.3.1 Vim2.3.2 Sed2.3.3 Awk 2.4 查看状态 2.5 保存代…

通俗易懂的java设计模式(3)-观察者设计模式

什么是观察者设计模式 观察者模式主要应用在对象存在一对多关系的情况下&#xff0c;那么如果一个对象&#xff0c;依赖于另一个对象&#xff0c;那个被依赖的对象一旦被修改&#xff0c;依赖于他的那个对象也会被观察者所告知。 观察者模式又被称作为发布-订阅模式&#xff0c…

2022 UUCTF

目录 <1> Web (1) websign(禁用js绕过) (2) ez_rce(?>闭合 rce) (3) ez_unser(引用传递) (4) ez_upload(apache后缀解析漏洞) (5) ezsql(union注入) (6) funmd5(代码审计 %0a绕过preg_replace) (7) phonecode(伪随机数漏洞) (8) ezpop(反序列化字符串逃逸) …

[附源码]Nodejs计算机毕业设计教师业绩考核和职称评审系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

[附源码]Nodejs计算机毕业设计教务管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

燃尽图——项目管理中的必备工具

燃尽图可以使项目经理和团队可以快速查看其工作负荷的进度以及项目按计划完成的情况。 在项目管理中&#xff0c;通过燃尽图不仅能了解项目进度&#xff0c;还能分析出项目中问题&#xff0c;及时进行风险控制。 燃尽图是用于表示剩余工作量的工作图表&#xff0c;由横轴&…

WebDAV之葫芦儿•派盘+RS文件管理器

RS文件管理器 支持WebDAV方式连接葫芦儿派盘。 手机本地文件,网盘、共享文件,如何集中管理?推荐您使用Rs文件管理器,还支持WebDAV等功能。 Rs文件管理器是一款功能强大的手机文件管理器。有强大的本地和网络文件管理功能,让您更方便的管理你的手机、平板、电脑和网盘。…

MOMO CODE SEC INSPECTOR-Java项目静态代码安全审计idea插件工具

工具地址 https://github.com/momosecurity/momo-code-sec-inspector-java安装 1、确认IDE版本&#xff1a;Intellij IDEA ( Community / Ultimate ) > 2018.32、IDEA插件市场搜索"immomo"安装。使用方式 被动&#xff1a;装完愉快的打代码&#xff0c;一边它会提…

AI作画的背后是怎么一步步实现的?一文详解AI作画算法原理+性能评测

前言 “AI作画依赖于多模态预训练&#xff0c;实际上各类作画AI模型早已存在&#xff0c;之所以近期作品质量提升很多&#xff0c;可能是因为以前预训练没有受到重视&#xff0c;还达不到媲美人类的程度&#xff0c;但随着数据量、训练量的增多&#xff0c;最终达到了现在呈现…

无约束优化:线搜索最速下降

文章目录无约束优化&#xff1a;线搜索最速下降无约束优化问题线搜索最速下降精确线搜索非精确线搜索Armijo准则Goldstein准则Wolfe准则参考文献无约束优化&#xff1a;线搜索最速下降 无约束优化问题 线搜索最速下降 对于光滑函数f(x)f(x)f(x)&#xff0c;沿着函数负梯度方向…

入门力扣自学笔记215 C++ (题目编号:1971)

1971. 寻找图中是否存在路径 题目&#xff1a; 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi 之间…

安装 DbVisualizer pro 10.0.16,编辑器中文乱码的解决

DbVisualizer pro 10.0.16 双击安装&#xff0c; 选择下载 JRE运行后 选择 创建 桌面快捷方式 安装成功后 ping 报错无法连接到mysql &#xff0c; 驱动 所致 官方下载最新驱动 MySQL :: Download MySQL Connector/J (Archived Versions)https://downloads.mysql.com/archi…

springcloudAlibaba之seata的使用

1.seata的基础角色&#xff1a; TC(Transaction Coordainator):事务协调者&#xff0c;它维护全局和分支事务的状态&#xff0c;驱动全局事务提交和回滚 TM(Transaction Manager):事务管理器&#xff0c;它定义了全局事务的范围&#xff0c;主要包括开始全局事务、提交全局事务…

采用多层人工神经网络的能源消耗的时间序列预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 该项目为能源消耗的时间序列预测&#xff0c;在Matlab中实现。该预测采用多层人工神经网络&#xff0c;基于Kaggle训练集预测未…

【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)

需要全部源码请点赞关注收藏后评论区留言私信~~~ 基本思想 迭代关系式是迭代法应用时的关键问题&#xff0c;而梯度下降&#xff08;Gradient Descent&#xff09;法正是用梯度来建立迭代关系式的迭代法。 机器学习模型的求解一般可以表示为&#xff1a; 其中&#xff0c;f(x)…