saprk数据输出到mysql--直接上干货

本文简明扼要地介绍了如何使用Spark将数据高效地导出到MySQL数据库,涉及关键配置如JDBC URL、driver、partitionColumn等,以及优化参数如fetchsize和batchsize,旨在帮助读者理解并实现大数据到MySQL的无缝迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此篇内容较简单干练,看不懂,欢迎关注加好友一起讨论,
一起钻研打通大数据那个组件的通道

val df: DataFrame = spark.sql("select * from table_name ")
 df.write.mode(SaveMode.Overwrite)//这里有四个参数,根据自己需要选择
.format("jdbc")
.option("url","jdbc:mysql://192.168.***.***:3306")
.option("dbtable","database.tables")//要先创建数据库,table不用在数据库创建,程序自动创建
.option("user","root")
.option("password","hadoop")
.option("batchsize","100000")
.option("truncate","true")
.save()

JDBC connection properties属性名称和含义url:要连接的JDBC
URL。列如:jdbc:mysql://ip:3306dbtable:应该读取的JDBC表。可以使用括号中的子查询代替完整表。driver:用于连接到此URL的JDBC驱动程序的类名,列如:com.mysql.jdbc.Driver
partitionColumn, lowerBound, upperBound,
numPartitions:这些options仅适用于read数据。这些options必须同时被指定。他们描述,如何从多个workers并行读取数据时,分割表。partitionColumn:必须是表中的数字列。lowerBound和upperBound仅用于决定分区的大小,而不是用于过滤表中的行。表中的所有行将被分割并返回。
fetchsize:仅适用于read数据。JDBC提取大小,用于确定每次获取的行数。这可以帮助JDBC驱动程序调优性能,这些驱动程序默认具有较低的提取大小(例如,Oracle每次提取10行)。
batchsize:仅适用于write数据。JDBC批量大小,用于确定每次insert的行数。这可以帮助JDBC驱动程序调优性能。默认为1000。
isolationLevel:仅适用于write数据。事务隔离级别,适用于当前连接。它可以是一个NONE,READ_COMMITTED,READ_UNCOMMITTED,REPEATABLE_READ,或SERIALIZABLE,对应于由JDBC的连接对象定义,缺省值为标准事务隔离级别READ_UNCOMMITTED。请参阅文档java.sql.Connection。
truncate:仅适用于write数据。当SaveMode.Overwrite启用时,此选项会truncate在MySQL中的表,而不是删除,再重建其现有的表。这可以更有效,并且防止表元数据(例如,索引)被去除。但是,在某些情况下,例如当新数据具有不同的模式时,它将无法工作。它默认为false。
createTableOptions:仅适用于write数据。此选项允许在创建表(例如CREATE TABLE t (nam
string) ENGINE=InnoDB.)时设置特定的数据库表和分区选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值