Spark之RDD概念详解

概述

RDD(A Resilient Distributed Dataset):弹性分布式数据集,是Spark中最基本的数据抽象,用来表示分布式集合,支持分布式操作。

诞生背景
没有RDD/Dataset之前做 Wordcount(大数据计算)可以使用:

  1. 原生集合:Java/Scala中的List但是只支持单机版!不支持分布式,如果要做分布式的计算需要做很多额外工作,例如线程/进程通信,容错,自动均衡等,麻烦,所有就诞生了解决这些问题的框架。
  2. MapReduce效率低运行效率低开发效率低)–早就淘汰
    所以需要有一个分布式的数据抽象,也就是用该抽象,可以表示分布式的集合,那么基于这个分布式集合进行操作,就可以很方便的完成分布式的Word Count!(该分布式集合底层应该将实现的细节封装好,提供简单易用的API)

五大属性

在RDD对象中,每个RDD都有五个主要的属性:

  • 分区列表: A list of partitions
  • 计算函数: A function for computing each split
  • 依赖关系: A list of dependencies on other RDDs
  • 分区器: Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
  • 计算位置:Optionally, a list of preferred locations to compute each split on (e.g. block locations for
    an HDFS file)

WordCount中RDD的五大属性

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zh2475855601/article/details/115029506