1. 表中数据过亿,加载速度过慢,而我只需要加载增量数据

如:加载昨天一整天的数据,添加predicates分区,方法如下:

//predicates相当于是把昨天的数据分成一个区,其它的数据不加载
val predicates: Array[String] = Array(s"created_at >=\'" + getDateTime.getYesDate() + "\' and created_at <\'" + getDateTime.getNowDate() + "\'")
// 取得该表数据
val orderInfoDF :DataFrame = spark.read.jdbc(TiDBMysqlUrl, orderInfoTable, predicates, properties)

如果需要加载大表中全部数据,可以把数据分成多个区(读取数据库表默认是一个分区),如下是按创建时间分区,把最近三个月数据分成三个区

val predicates: Array[String] =
Array(
"2019-08-01" -> "2019-09-01",
"2019-09-01" -> "2019-10-01",
"2019-10-01" -> "2019-11-01"
).map {
case (start, end) =>
s"pay_status=1 and created_at >=\'$start\' and created_at <\'$end\'"
} // 取得该表数据
val orderInfoDF :DataFrame = spark.read.jdbc(TiDBMysqlUrl, orderInfoTable, predicates, properties)

2.每次到了最后一个stage,报内存不足错误

原因:

使用了coalesce重设Rdd的分区,可能是分区的数量发生激烈的变化,从父Rdd的几千个分区设置成几个,从而导致这个错误。

方法:

为了避免这个情况,可以设置shuffle=true,即为repartition()方法

有两种方法是可以重设Rdd的分区:分别是 coalesce()和repartition()方法,主要用来合并多个分区,以便生成少数文件

3.插入数据到Tidb里面,直接报超过最大限制条数

Caused by: java.sql.SQLException: statement count  exceeds the transact

解决方法:

可以通过修改tidb的配置,然后重启tidb,但由于运维工程师最大设置为50000,怕负载过高,只能通过批量插入到tidb里面;

由于我这边数据大概每天50万左右,大小不到10M,先是把结果储存在HDFS上,然后读取转换为dataframe格式,相当于分区=文件大小/128M(block块),

则dataframe默认只有两个分区,需要通过repartition()进行重新分区,然后插入即可,如:

resDF.rdd.getNumPartitions查看该dataframe分成几个分区

resDF.repartition().write.mode("append").jdbc(TiDBConnect.url, tableName, prop),分成11分区,保证平均每个分区小于50000即可

spark遇到的问题及解决方法的更多相关文章

  1. Spark程序运行常见错误解决方法以及优化

    转载自:http://bigdata.51cto.com/art/201704/536499.htm Spark程序运行常见错误解决方法以及优化 task倾斜原因比较多,网络io,cpu,mem都有可 ...

  2. Spark java.lang.outofmemoryerror gc overhead limit exceeded 与 spark OOM:java heap space 解决方法

    引用自:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246 ...

  3. Spark面对OOM问题的解决方法及优化总结 (转载)

    转载地址: http://blog.csdn.net/yhb315279058/article/details/51035631     Spark中的OOM问题不外乎以下两种情况 map执行中内存溢 ...

  4. spark sql 访问hive数据时找不mysql的解决方法

    我尝试着在classpath中加n入mysql的驱动仍不行 解决方法:在启动的时候加入参数--driver-class中加入mysql 驱动 [hadoop@master spark-1.0.1-bi ...

  5. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...

  6. spark出现task不能序列化错误的解决方法 org.apache.spark.SparkException: Task not serializable

    import org.elasticsearch.cluster.routing.Murmur3HashFunction; import org.elasticsearch.common.math.M ...

  7. Spark OOM:java heap space,OOM:GC overhead limit exceeded解决方法

    问题描述: 在使用spark过程中,有时会因为数据增大,而出现下面两种错误: java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMe ...

  8. sc.textFile("file:///home/spark/data.txt") Input path does not exist解决方法——submit 加参数 --master local 即可解决

    use this val data = sc.textFile("/home/spark/data.txt") this should work and set master as ...

  9. kafka broker Leader -1引起spark Streaming不能消费的故障解决方法

    一.问题描述:Kafka生产集群中有一台机器cdh-003由于物理故障原因挂掉了,并且系统起不来了,使得线上的spark Streaming实时任务不能正常消费,重启实时任务都不行.查看kafka t ...

随机推荐

  1. CSS3实现PS中的蚁行线动画以及画布的马赛克背景图

    话不多说,先看例子,外链 效果截图如下: 蚁行线 马赛克背景 代码: 蚁行线代码如下: /* <!-- HTML代码 --> <div class="ant"&g ...

  2. 【cf比赛记录】Codeforces Round #604 (Div. 2)

    比赛传送门 感觉这场是最近以来做过的最顺手的一场,持续上分,开心w A了 前三题,然后第四题其实还有半个多小时,但怕身体撑不住,就先退了,其实第四题也很简单 自己认为的算法标签: ​ A.暴力模拟.字 ...

  3. 浅谈[0,1]区间内的n个随机实数变量中增加偏序关系类题目的解法

    浅谈[0,1]区间内的n个随机实数变量中增加偏序关系类题目的解法 众所周知,把[0,1]区间内的n个随机.相互独立的实数变量\(x_i\)之间的大小关系写成一个排列\(\{p_i\}\),使得\(\f ...

  4. [转]Jumpserve跳板机的生产环境应用

    Jumpserver是国内一款开源的轻便的跳板机系统,他们的官网:http://www.jumpserver.org/ 使用这款软件意在提高公司内部登录生产环境服务器的便捷性,权限分配细化,以及后台管 ...

  5. linux 自动化安装系统 -KS文件

    # Kickstart file automatically generated by anaconda. installharddrive --partition=sdb2 --dir=lang e ...

  6. Shell脚本之六 数学计算

    前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下 ...

  7. Win 10 没有 Hyper-V 解决方案

    1.首先新建一个记事本文件. 2.在记事本中写入. pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.m ...

  8. C++工程师养成 每日一题(vector使用)

    题目: 链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue来源: ...

  9. SAP: Smartform中存在渐变色图片的上传失真问题的解决

    下载GIMP编辑软件,导入图像选择Image->Mode->Indexed 设置Color dithering然后通过File->Export as导出bmp文件.如果上传后不好用请 ...

  10. Asp.Net Core Web Api 使用 Swagger 生成 api 说明文档

    最近使用 Asp.Net Core Web Api 开发项目服务端.Swagger 是最受欢迎的 REST APIs 文档生成工具之一,进入我的视野.以下为学习应用情况的整理. 一.Swagger 介 ...