spark的rdd详解1

1,rdd的转换和行动操作

2,创建rdd的2种方式

1,通过hdfs支持的文件系统,没有真正把数据放rdd,只记录了一下元数据

2,通过scala的集合或者数组并行化的创建rdd

3,rdd的5大特点

1,rdd是分区的,可以指定分区数

2,算子的方法都会作用在每个分区

3,rdd之前有一系列的依赖,所有依赖形成DAG图,DAG计算单位是阶段

4,k-v的rdd可以选择分区器,默认的是hash-partitioned

5,会选择最优的位置计算每个分区,避免跨网络传输数据

原文地址:https://www.cnblogs.com/yeyusheng/p/9498582.html

时间: 2024-10-02 20:43:24

spark的rdd详解1的相关文章

深入理解spark-rdd详解

1.我们在使用spark计算的时候,操作数据集的感觉很方便是因为spark帮我们封装了一个rdd(弹性分布式数据集Resilient Distributed Dataset): 那么rdd数据本身是如何存储的呢,又是如何调度读取的? spark大部分时候都是在集群上上运行的,那么数据本身一定是也是分布式存储的,数据是由每个Excutor的去管理多个block的,而元数据本身是由driver的blockManageMaster来管理,当每个excutor创建的时候也会创建相对应的数据集管理服务bl

Apache Spark源码走读之16 -- spark repl实现详解

欢迎转载,转载请注明出处,徽沪一郎. 概要 之所以对spark shell的内部实现产生兴趣全部缘于好奇代码的编译加载过程,scala是需要编译才能执行的语言,但提供的scala repl可以实现代码的实时交互式执行,这是为什么呢? 既然scala已经提供了repl,为什么spark还要自己单独搞一套spark repl,这其中的缘由到底何在? 显然,这些都是问题,要解开这些谜团,只有再次开启一段源码分析之旅了. 全局视图 上图显示了java源文件从编译到加载执行的全局视图,整个过程中最主要的步

Spark RDD详解

1.RDD是什么 RDD:Spark的核心概念是RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD的描述 Internally, each RDD is characterized by five main properties: A list of partitions A function for computing each split A list of depe

Apache Spark 内存管理详解

Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优.本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨.本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD.Shuffle.JVM 等相关概念. 在执行 Spark 的应用程序时,Spark 集群会启动 Driver

Spark(六) -- RDD详解

What is RDD? A Resilient Distributed Dataset(RDD),分布式弹性数据集,是Spark上的一个核心抽象 表示用于并行计算的,不可修改的,对数据集合进行分片的数据结构 在Spark上,针对各种各样的计算场景存在着各种各种的RDD,这些RDD拥有一些共同的操作,例如map,filter,persist等,就好像RDDs都是一个总RDD的子类一样,拥有所有RDD的共同特性 同时RDDs也拥有能表达自己特性的操作,例如PairRDDR有groupByKey,j

深入探究Spark -- RDD详解

Spark最基本.最根本的数据抽象 RDD基于内存,提高了迭代式.交互式操作的性能 RDD是只读的,只能通过其他RDD批量操作来创建,提高容错性    另外RDD还具有位置感知性调度和可伸缩性 RDD只支持粗粒度转换,记录Lineage,用于恢复丢失的分区,从物理存储的数据计算出相应的RDD分区 RDD的5个主要属性: 1.一组分片,默认的分片个数等于core数.BlockManager进行分配. 2.一个compute计算分区函数,对迭代器进行复合,以分片为单位 3.RDD之间的依赖关系,使数

[Spark]-RDD详解之变量&操作

RDD的操作 1.1 概述    RDD整体包含两大类操作 transformation 从现有中创建一个新的数据集 action 在对数据集做一定程度的计算后将结果返回        以MapReduce来说,Map就是一个transformation ,它是从每个文件块上执行一个方法来抽取转换,最终形成一个新的数据集.而Reduce就是一个action,它在对数据集执行一个函数进行计算后返回一个结果 对于所有的transformation,都是Lazy的,也就是说它不会立即执行,只是单纯的记

spark 存储机制详解

我们知道spark可以将运行过的RDD存储到内存上, 并在需要的时候重复利用. 那么spark是怎么完成这些工作的, 本文将通过分析源码来解释RDD的重复利用过程. 在上一篇文章解释了spark的执行机制, DAGScheduler负责分解action, 在DAGScheduler.getMissingParentStages中, spark首次利用了过去的RDD, 而所使用的函数就是DAGScheduler.getCacheLocs. 1 private val cacheLocs = new

Spark内存模型详解

1 堆内和堆外内存规划 Spark执行器(Executor)的内存管理建立在 JVM 的内存管理之上,Spark 对 JVM 的空间(OnHeap+Off-heap)进行了更为详细的分配,以充分利用内存.同时,Spark 引入了Off-heap 内存模式,使之可以直接在工作节点的系统内存中开辟空间,进一步优化了内存的使用(可以理解为是独立于JVM托管的Heap之外利用c-style的malloc从os分配到的memory.由于不再由JVM托管,通过高效的内存管理,可以避免JVM object o