| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Spark之RDD的五大特性 -> 正文阅读 |
|
[大数据]Spark之RDD的五大特性 |
一.RDD的官网定义
????????弹性分布式数据集(RDD),Spark中的基本抽象。表示不可变的,分区的可以并行操作的元素集合。 解释:
详情查看官网:https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/RDD.scala 解读: 2)序列化:在分布式计算框架里,序列化框架性能的好坏直接影响整个框架性能的优劣 3)logging:日志记录,2.0版本后不自带,需要自己写一个 4)T:泛型 支持各种数据类型 5)sparkcontext 6)@transient 二、RDD的5大特点官网定义解释:? 1)A list of partitions RDD由很多partition构成,在spark中,计算式,有多少partition就对应有多少个task来执行,一个分区在一台机器上,一个分区其实就是放在一台机器的内存上, ?一台机器上可以有多个分区,?户可以在创建RDD时指定RDD的分?个数,如果没有指定,那么就会采?默认值。默认值就是程序所 分配到的CPU Core的数?。
3)A list of dependencies on other RDDs ?4 )a partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
?个
Partitioner
,即
RDD
的分?函数。当前
Spark
中实现了两种类型的分?函数,?个是基于哈希的 HashPartitioner,另外?个是基于范围的
RangePartitioner
。只有对于
key-value
的
RDD
,才会有 Partitioner,?
key-value
的
RDD
的
Parititioner
的值是
None
。
Partitioner
函数不但决定了
RDD
本身的分? 数量,也决定了parent RDD Shuffle
输出时的分?数量。也是分区器,决定数据落在哪个分区
????????????????????????????????????????????-????????????????????????????????????? 5 ) a list of locations to compute each split?on (e.g. locations for an HDFS file) ? ? 最优的位置去计算,也就是数据的本地性 就是移动数据不如移动计算的理念,移动数据增加时间,不如移动计算方式到数据的节点计算 三、RDD5大特性在源码中的体现特性1:getPartitions返回的必然是一系列Partition类型的数据组成的数组
特性2:compute函数的入参必然是partition,因为对RDD做计算相当于对每个partition做计算
?特性3:RDD之间有依赖关系
特性4: Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
特性5:Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
总结(RDD的五?特征):
注意
:
RDD
本身是不存储数据
,
可以看做
RDD
本身是?个引?数据
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/18 20:49:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |