不多说,直接上干货! Pair RDD的分区控制 Pair RDD的分区控制 (1) Spark 中所有的键值对RDD 都可以进行分区控制---自定义分区 (2)自定义分区的好处:  1) 避免数据倾斜 2) 控制task并行度 自定义分区方式 class DomainNamePartitioner(numParts: Int) extends Partitioner { override def numPartitions: Int = numParts override def getPar…
不多说,直接上干货! Pair RDD的action操作 所有基础RDD 支持的行动操作也都在pair RDD 上可用…
不多说,直接上干货! Pair RDD的transformation操作 Pair RDD转换操作1 Pair RDD 可以使用所有标准RDD 上转化操作,还提供了特有的转换操作. Pair RDD转换操作2…
不多说,直接上干货!…
不多说,直接上干货! 创建Pair RDD Python语言 pairs = lines.map(lambda x: (x.split(], x))  scala语言 val pairs = lines.map(x => (x.split(), x)) Java语言 PairFunction keyData = new PairFunction() { public Tuple2 call(String x) { ], x); } }; JavaPairRDD pairs = lines.map…
不多说,直接上干货! 什么是Pair RDD (1)包含键值对类型的RDD被称作Pair RDD. (2)Pair RDD通常用来进行聚合计算. (3)Pair RDD通常由普通RDD做ETL转换而来. 关于ETL的知识,请移步 http://www.cnblogs.com/zlslch/category/1008607.html…
 RDD的检查点 首先,要清楚.为什么spark要引入检查点机制?引入RDD的检查点?  答:如果缓存丢失了,则需要重新计算.如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容忽视的.为了避免缓存丢失重新计算带来的开销,Spark又引入检查点机制. RDD的缓存能够在第一次计算完成后,将计算结果保存到内存.本地文件系统或者Tachyon(分布式内存文件系统)中.通过缓存,Spark避免了RDD上的重复计算,能够极大地提升计算速度.但是,如果缓存丢失了,则需要重新计算.如果…
RDD的创建  两种方式来创建RDD: 1)由一个已经存在的Scala集合创建 2)由外部存储系统的数据集创建,包括本地文件系统,还有所有Hadoop支持的数据集,比如HDFS.Cassandra.HBase.Amazon S3等. RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建.这些确定性操作称为转换,如map.filter.groupBy.join. 第1个RDD:代表了spark应用程序输入数据的来源,通过Transformation来对RDD进行各种算子的…
   RDD是什么? 通俗地理解,RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的.详细见  Spark的数据存储 Spark的核心数据模型是RDD,但RDD是个抽象类,具体由各子类实现,如MappedRDD. ShuffledRDD等子类. Spark将常用的大数据操作都转化成为RDD的子类.  官方对RDD的解释是:弹性分布式数据集,全称是Resilient Distributed Datasets.RDD是只读的.分区记录的集合.RDD只能基于在稳定物理存储…
RDD的依赖关系?   RDD和它依赖的parent RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency). 1)窄依赖指的是每一个parent RDD的Partition最多被子RDD的一个Partition使用,如图1所示. 2)宽依赖指的是多个子RDD的Partition会依赖同一个parent RDD的Partition,如图2所示. RDD作为数据结构,本质上是一个只读的分区记录集合.一个RDD可以包含多个分区,每…