spark-core
晓晓很可爱
这个人很懒什么都没有留下
展开
-
Spark3.0的新特性
1. 新特性一:动态分区裁剪比如上面的 SQL 查询,假设 t2 表 t2.id < 2 过滤出来的数据比较少,但是由于之前版本的 Spark 无法进行动态计算代价,所以可能会导致 t1 表扫描出大量无效的数据。有了动态分区裁减,可以在运行的时候过滤掉 t1 表无用的数据优化之后:经过这个优化,查询扫描的数据大大减少,性能提升了 33 倍2. 新特性二:自适应优化查询比如下面的查询,基于代价的模型优化不可能准确的评估而有了 AQE 之后,Spark 就可以.原创 2020-12-11 17:11:13 · 1785 阅读 · 1 评论 -
Spark-Core之Spark on standAlone 模式的执行过程详解
1.Spark on standAlone 模式(Client)1.1 执行流程图1.2 执行过程详解:0.当需要提交一个任务到spark集群中时,spark-submit脚本会执行一个叫SparkSubmit的类,然后通过反射调用 我们设置的参数 -- class中的main方法,然后在main方法中new SparkContext1. 将提交的信息发送给Master2. master根据提交的applicatition的资源信息,先根据内存过滤出符合条件的Work...原创 2020-12-09 00:57:58 · 386 阅读 · 0 评论 -
Spark-Core之Spark运行模式StandAlone模式和Yarn模式详解
1. spark运行在standAlond模式:1.1 standAlone的client模式:(driver运行在sparkSubmit进程中)1.2 运行的流程:1. 客户端向master提交任务2. master根据客户端提交的任务,计算那些worker符合执行任务的条件,找到符合执行条件的worker然后和worker 进行RPC通信,通知worker启动executor,并且会将一些driver端的信息告诉给executor,executor启动之后会想driver端反向注册原创 2020-12-05 20:09:18 · 1061 阅读 · 0 评论 -
Spark-Core性能调优之用Spark实现KRYO序列化
1.实现kryo序列化的目的:为了降低driver端,到executor之间网络传输压力,可以使用spark自带的,kryo序列化方式,而不使用java的序列化,kryo序列化不仅可以节约内存空间,在网络传输上也可以节省网络资源,java的序列方式,不仅占用较大的内存空间,而且网络传输也比较慢.2.官方文档为我们提供的序列化优化方式Data SerializationSerialization plays an important role in the performance of an原创 2020-12-04 21:20:29 · 318 阅读 · 0 评论 -
Spark-Core分组求TOPN的六种不同的实现方式
案例:计算学科最受欢迎老师TopN1.需求:根据网站的行为日志,统计每个学科最受欢迎老师的TopN,即按照学科分组,在每一个组内进行排序2. 样例数据:http://bigdata.51doit.cn/laozhanghttp://bigdata.51doit.cn/laozhanghttp://bigdata.51doit.cn/laozhaohttp://bigdata.51doit.cn/laozhaohttp://bigdata.51doit.cn/laozhaoh原创 2020-12-02 15:10:55 · 592 阅读 · 1 评论 -
Spark-Core结合商品订单案例理解RDD中算子的用法
1.需求:在给定的订单数据,根据订单的分类ID进行聚合,然后按照订单分类名称,统计出某一天商品各个分类的成交金额,然后在结合商品分类表匹配上对应的商品分类字段,然后将计算结果保存到mysql中,要求结果如图所示:2.数据样例{"cid": 1, "money": 600.0, "longitude":116.397128,"latitude":39.916527,"oid":"o123", }"oid":"o112", "cid": 3, "money": 200.0, "longit原创 2020-12-01 21:24:22 · 350 阅读 · 0 评论 -
Spark-Core之源码级算子详解(二)
1.keys算子理解:只能针对对偶元组使用,keys这个方法是定义在PariPDDfunction中,只有Rdd中装的是对偶元组才能将rdd转换为PariRDDFunction(隐式转换)一般我们经常使用的reduceBykey或者是groupBykey 这种带有Bykey操作的算子都是先将RDD(对偶元组)通过隐式转换为PariRDDFunction 才能调用算子keys算子底层 调用的是map方法,是对rdd中的每一个分区调用map方法2.values算子理解:只能针对对偶元组使用,valu.原创 2020-11-29 22:31:13 · 262 阅读 · 0 评论 -
Spark-Core中那些你不知道的面试题
1.Application使用SparkSubmit提交的个计算应用,一个Application中可以触发一到多次Action,触发一次Action形成一个DAG,一个DAG对应一个Job,一个Application中可以有一到多个Job2.JobDriver向Executor提交的作业,触发一次Acition形成一个完整的DAG,一个DAG对应一个Job,一个Job中有一到多个Stage,一个Stage对应一个TaskSet,一个TaskSet中有一到多个Task3.DAG概念:有向无原创 2020-11-29 11:41:45 · 279 阅读 · 0 评论 -
Spark-Core之RDD的概述以及算子详解
一、RDD概述 1、什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。 2、RDD属性 (1)、一组分片(Partition),即数据集的基...原创 2020-11-29 00:20:53 · 349 阅读 · 0 评论 -
Spark-Core之源码级算子详解(三)
0.intersection求交集功能:是对两个rdd或者两个集合,求共同的部分,比如第一个rdd中有的数据并且第二个rdd中也有的数据,取出相同的元素(会去重)底层:底层调用的cogroup,map将数据本身当成key,null当成value,然后进行过滤,过滤的条件为,两个迭代器都不为空迭代器,然后调用keys取出key def intersection(other: RDD[T]): RDD[T] = withScope { this.map(v => (v, null))原创 2020-11-29 00:11:40 · 307 阅读 · 0 评论 -
Spark-Core中RDD详细介绍
RDD ---弹性分布式数据集 RDD概述 RDD论文 中文版 : http://spark.apachecn.org/paper/zh/spark-rdd.html RDD产生背景 为了解决开发人员能在大规模的集群中以一种容错的方式进行内存计算,提出了 RDD 的概念,而当前的很多框架对迭代式算法场景与交互性数据挖掘场景的处理性能非常差, 这个是RDDs 的提出的动机。 什么是 RDD ...转载 2020-11-20 23:16:11 · 202 阅读 · 0 评论