lambda 查询大量数据速度很慢_优化SparkSQL读取kudu数据向Mysql写入效率低的问题

本文档详细记录了解决SparkSQL通过Kudu读取大量数据并低效写入Mysql的问题。原始代码导致每条插入启动新的MySQL连接,导致速度慢且增加Mysql负载。通过查阅资料,了解到可以通过调整JDBC参数提高性能,如启用批量写入(rewriteBatchedStatements=true)和设置批量大小(batchsize=10000)。经过修改,数据迁移的效率显著提升。
摘要由CSDN通过智能技术生成

记录一次实际工作中SparkSQL向Mysql写入数据,效率很低很慢的解决过程。

原始代码如下:

object Kudu2Mysql {def main(args: Array[String]): Unit = {val sparkSession: SparkSession = SparkSession.builder().master("local[6]").appName("kudu2Mysql").getOrCreate()val kuduMaster = "192.168.100.100:7051,192.168.100.100:7051,192.168.100.100:7051"val kuduTable = "kudu_test"val kuduSql ="""select * from tmp_kuduTable where day = '2020-03-16'"""val kuduDatas = sparkSqlReadKudu(sparkSession, kuduMaster, kuduTable, kuduSql)val mysqlTable = "kudu_test"saveToMysql(kuduDatas, mysqlTable)sparkSession.stop()}private def sparkSqlReadKudu(sparkSession: SparkSession, kuduMaster: String, kuduTable: String, sql: String) = {val options = Map("kudu.master" -> kuduMaster,"kudu.table" -> kuduTable)val kuduDatas: DataFrame = sparkSession.read.format(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值