
Spark
会飞的犬良
这个作者很懒,什么都没留下…
展开
-
Spark源码分析-takeSample源码分析
1.参数说明 withReplacement:是否是有放回的抽样,就是普通的抽样,我们都是抽过的数据就不能在抽样了,有放回抽样就是可以继续抽以前抽取过的。 num:数据抽样的个数2.执行源码流程 执行流程主要是调用了RDD的takeSample方法,下面先贴上这个方法的代码:def takeSample( withReplacement: Boole...原创 2020-04-21 18:27:58 · 363 阅读 · 0 评论 -
Spark源码-sample计算流程分析
1.参数说明 Sample构造函数有三个参数,每个参数的含义如下: withReplacement:元素可以多次抽样(在抽样时替换) fraction:期望样本的大小作为RDD大小的一部分, 当withReplacement=false时:选择每个元素的概率;分数一定是[0,1] ; 当 withReplacement=true时:选择每个元素的期望次数; 分数...原创 2020-04-21 15:28:33 · 918 阅读 · 0 评论 -
Spark计算流程分析(map-reduce)过程
本文只是结合源码对spark的map和reduce过程做简单的总结,不是特别深入。主要是《深入理解Spark__核心思想与源码分析》一书中的内容和自己的一些理解。1.Shuffle 不管是hadoop的MapReduce还是spark的map-reduce过程,核心过程都叫做shuffle,MapReduce的shuffle过程,要对每个分区的数据进行排序,然后merge,完...原创 2020-04-20 22:02:52 · 2821 阅读 · 2 评论 -
Spark源码分析-SortByKey源码
简单介绍SortByKey对<key, value>数据进行按照key进行排序,怎么个排法,我么先看一下spark源码中的一些注释: 两段注释的基本意思差不多:通过RDD的key进行排序,每一个分区包括在一个范围内排好序的元素,然后返回一个有序的list集合,或者按照该key以part-x的形式保存在文件系统上。大概的意思就是这样,就是按照partitio...原创 2020-04-19 22:19:41 · 715 阅读 · 1 评论 -
Spark源码分析-topN源码
介绍TopN算子是取RDD的前N个元素。取TopN元素,我们就一定要对其进行严格排序吗?非也,也正是如此,加大了此算子的效率。源码理解def top(num: Int): JList[T] = {val comp = com.google.common.collect.Ordering.natural().asInstanceOf[Comparator[T]]top(nu...原创 2020-04-19 12:01:27 · 295 阅读 · 0 评论 -
Spark数据倾斜的原因以及解决方案
转自:https://www.cnblogs.com/xiaodf/p/6055803.html数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。数据倾斜发生时的现象绝大多数task执行得都非常快,但个别ta...转载 2020-03-03 11:52:57 · 531 阅读 · 1 评论 -
Spark中wordCount的常见写法
Spark的wordCount是入门级程序,下面我以Java为基础,分享3种基础的写法1.JavaRDD加reduceByKey写法SparkConf conf = new SparkConf();conf.setAppName("topN");conf.setMaster("local");JavaSparkContext jsc = new JavaSparkContext(c...原创 2020-01-31 12:46:43 · 411 阅读 · 0 评论 -
Spark的宽依赖和窄依赖
Spark的计算的基本单位一个一个的算子,其计算流程也是由一个个基本的算子构成的,这些算子之间的依赖关系可以分为宽依赖和窄依赖。Spark是分布式计算,其数据也是分布式的,即所计算的数据可能分为好多个块。有些计算对数据的操作相对简单,即某一块儿的数据处理不需要涉及到其他块的数据,就是对本块数据处理完可以直接输出到下一个数据块,中间不需要更多的过程参与。比如map()算子,本身就是对每个数据进行...原创 2019-01-02 11:53:07 · 1296 阅读 · 0 评论 -
Spark为什么比Hadoop快
1.前言大数据工程师都喜欢拿Spark和Hadoop进行对比。一般的理解就是:Spark是基于内存的计算,而Hadoop是基于磁盘的计算;Spark是一种内存计算技术。果真如此吗?事实上,不光Spark是内存计算,Hadoop其实也是内存计算。Spark和Hadoop的根本差异是多个任务之间的数据通信问题:Spark多个任务之间数据通信是基于内存,而Hadoop是基于磁盘。Spark...转载 2019-01-03 15:07:58 · 476 阅读 · 0 评论 -
Spark中RDD,DataFrame,DataSet简单介绍
Spark中三个主要的数据对象RDD, DataFrame和DataSet都是分布式弹性数据集,为我们处理大量数据提供了很方便的工具及其接口。下面我们对其简单介绍,并且介绍一下其中的联系。 注:一下介绍的过程都是通过Java语言的视角介绍的。RDD RDD是一个分布式的对象集合,本质上是一个不可修改的只读的对象集合。在java中我们申请RDD...原创 2019-10-24 19:38:44 · 500 阅读 · 0 评论