RDD的理解

1.RDD介绍

  

  A list of partitions ====> 一个许多分区的集合,分区中包含数据
  A function for computing each split ===> 为每个分区提供一个computing的函数
  A list of dependencies on other RDDs ===> RDD会依赖其他RDDs, 这种特性叫做:lineage(生命线);特例:第一个RDD不依赖其他RDD
  Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned) Key-Value的RDD存在一个分区器,默认是Hash分区器;分区器的作用类型MR中的Partitioner,决定上一个RDD中的数据到下一个RDD的时候是在那个分区中
  Optionally, a list of preferred locations to compute each split on (e.g. block locations foran HDFS file) 数据计算本地化操作,类似MR

2.对应的五个方法

  

时间: 2024-10-09 22:38:54

RDD的理解的相关文章

Spark学习之RDD的理解

转自:http://www.infoq.com/cn/articles/spark-core-rdd/ 感谢张逸老师的无私分享 RDD,全称为Resilient Distributed Datasets,是一个容错的.并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区.同时,RDD还提供了一组丰富的操作来操作这些数据.在这些操作中,诸如map.flatMap.filter等转换操作实现了monad模式,很好地契合了Scala的集合操作.除此之外,RDD还提供了诸如joi

通过一系列破坏行为加深对spark RDD 的理解(或者是猜测)(python 版)

这个实验由一个实验案例产生,实验中,需要对一个数据集进行维护,其中有一个需要对数据一条条进行插入: 下面是最二的写法: rdd=sc.parallelize([-1]) for i in range(10000): rdd=rdd.union(sc.parallelize([i])) 每次插入数据,新建一个rdd,然后union. 后果是: java.lang.OutOfMemoryError: GC overhead limit exceeded at org.apache.spark.rdd

Spark弹性分布式数据集RDD

RDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现.RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现.RDD必须是可序列化的.RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作.这对于迭代运算比

Spark RDD到底是个什么东西

前言 用Spark有一段时间了,但是感觉还是停留在表面,对于Spark的RDD的理解还是停留在概念上,即只知道它是个弹性分布式数据集,其他的一概不知 有点略显惭愧.下面记录下我对RDD的新的理解. 官方介绍  弹性分布式数据集. RDD是只读的.分区记录的集合.RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建. 问题 只要你敢问度娘RDD是什么,包你看到一大片一模一样的答案,都是说这样的概念性的东西,没有任何的价值. 我只想知道 RDD为什么是弹性 而不是 不弹性,

Spark RDD初探(一)

本文概要 本文主要从以下几点阐述RDD,了解RDD 什么是RDD? 两种RDD创建方式 向给spark传递函数Passing Functions to Spark 两种操作之转换Transformations 两种操作之行动Actions 惰性求值 RDD持久化Persistence 理解闭包Understanding closures 共享变量Shared Variables 总结 Working with Key-Value Pairs.Shuffle operations.patition

【核心API开发】Spark入门教程[3]

本教程源于2016年3月出版书籍<Spark原理.机制及应用> ,在此以知识共享为初衷公开部分内容,如有兴趣,请支持正版书籍. Spark综合了前人分布式数据处理架构和语言的优缺点,使用简洁.一致的函数式语言Scala作为主要开发语言,同时为了方便更多语言背景的人使用,还支持Java.Python和R语言.Spark因为其弹性分布式数据集(RDD)的抽象数据结构设计,通过实现抽象类RDD可以产生面对不同应用场景的子类.本章将先介绍Spark编程模型.RDD的相关概念.常用API源码及应用案例,

大数据学习:Scala面向对象和Spark一些代码读和问

画外音: Spark对面向对象的支持是非常完美的 主题: 1.简单的类: 2.重写getter.setter方法: 3.利用其它方法来控制外部对值的控制: 4. private[this]: 5.构造器以及构造器相关: 直接代码见真章: ==========最简单的类============ scala> class HiScala{ | private var name = "Spark" | def sayName(){println(name)} | def getName

Spark MaprLab-Auction Data分析

一.环境安装 1.安装hadoop http://my.oschina.net/u/204498/blog/519789 2.安装spark 3.启动hadoop 4.启动spark 二. 1.数据准备 从MAPR官网上下载数据DEV360DATA.zip并上传到server上. [[email protected] spark-1.5.1-bin-hadoop2.6]$ pwd /home/hadoop/spark-1.5.1-bin-hadoop2.6 [[email protected] 

Spark面试题

RDD怎么理解? RDD 是 Spark 的灵魂,也称为弹性分布式数据集.一个 RDD 代表一个可以被分区的只读数据集.RDD 内部可以有许多分区(partitions),每个分区又拥有大量的记录(records).Rdd的五个特征: 1. dependencies: 建立 RDD 的依赖关系,主要 RDD 之间是宽窄依赖的关系,具有窄依赖关系的 RDD 可以在同一个 stage 中进行计算. 2. partition: 一个 RDD 会有若干个分区,分区的大小决定了对这个 RDD 计算的粒度,