栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

spark学习-----Spark 算子

spark学习-----Spark 算子

学习之前先介绍一下什么是spark
Spark 是基于内存计算的大数据并行计算框架,因为它基于内存计算,所以提高了
在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将
Spark 部署在大量廉价硬件之上,形成集群。

RDD 介绍RDD 概念
RDD(Resilient Distributed Dataset) 弹性分布式数据集 , 
是 Spark 中最基本的数据对象,它代表一个不可变,可区,里面
的元素可并行计算的集合。这里虽然是集合但是里面却没有数据。
特点
    自动容错性位置感知性高度可伸缩性允许用户在多个查询的时候,将任务存在缓冲区内,后续的查询能重用查询工作集,这样大大提升工作效率以及速度
RDD的属性

1. ---- A list of partitions

一个组分片,即数据集的基本组成单位
对于 RDD 来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度,用户可以在创建 RDD 
时指定 RDD的分片个数,如果没有指定,那么就会采用默认值,默认值就是程序所分配 到的 CPU 
Core 的数目 

2. ---- A function for computing each split

一个计算每个分区的函数
Spark 中 RDD 的计算是以分片为单位的,每个 RDD 都会实现 compute 函数以达到这个目的,
compute 函数会对迭代器进行复合,不需要保存每次计算的结果

3. ---- A list of dependencies on other RDDs

RDD 之间的依赖关系
RDD 每次转换都会生成一个新的RDD, 所以 RDD 之间就会形成类似于流水线一样的前后依赖关系。
在部分数据丢失时, Spark 可以通过这个依赖关系重新计算丢失 的分区数据,而不是对 RDD的所有
分区进行重新计算

4. ---- Optionally, 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的 Partitioner的值是None, Partitioner函数不但决定 了 RDD 本身的分片数
量,也决定了 parents RDD Shuffle 输出时的分片数量

5. ---- Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file )

一个列表,存储存取每个 Partion 的优先位置(preferred location)
对于一个 HDFS 文件来说,这个列表 保存的就是每个Partition 所在的块的位置
按照“移动数据不如移动计算”的理念, Spark 在进行任务调度的时候,会尽可能的将计算任务分配到
其所要处理数据块的存储位置
深入RDD 创建RDD

这里主要用两种方法来创建RDD

    通过外部的数据文件创建 (HDFS)
val rdd1: RDD[String] = sc.textFile("hdfs://192.168.10.210:9000/data/data.txt")
如果是本地模式的spark,这里可以把文件路径换成本地端

val linesRDD: RDD[String] = sc.textFile("data/words.txt")

    通过 sc.parallelize 进行创建
 val listRDD: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4, 5, 6, 7, 8, 9))
 
 val rdd2 = sc.parallelize(Array(1,2,3,4,5,6))
RDD的基本原理

一个分区运行在一个Worker 节点上, 一个 Worker 上可以运行多个分区

//                          3代表分三个分区
val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8), 3)
RDD的类型
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780456.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号