SparkSQL 读取mysql大表速度过慢解决方法

当使用SparkSQL从包含约2400万条数据的MySQL表中读取时,遇到了15分钟以上的延迟及OOM、Executor超时等问题。通过研究官方文档和相关文章,了解到可以采用分区查询来提高效率。通过设置`partitionColumn`, `lowerBound`, `upperBound`, `numPartitions`参数,成功将读取时间降低到2分钟以内。" 112590320,10538295,PID控制器详解:原理与指令应用,"['自动控制', 'PID运算', '控制理论', 'PLC编程', '系统响应']
摘要由CSDN通过智能技术生成

问题背景

在使用sqarksql.read读取mysql表时(大约为2400万条左右)

    val scholarDF = spark.read
     .format("jdbc")
     .option("url", "jdbc:mysql://192.168.60.49:3306/test")
     .option("dbtable", "scholar_2")
     .option("user", root)
     .option("password", password)
     .load()

会产生难以忍受的时间长度(15min以上),而且无论怎么调大driver和executor内存,都无济于事,还会产生oom,heap space,Executor heartbeat timeout等错误

[Stage 0:=======================================================> (
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值