Spark中的RDD,RDD的创建方式,RDD中函数的分类

RDD是什么

就是一个集合
在使用的时候,就当做为Scala集合类中List列表

实质

分布式 存储数据 集合
abstract class RDD[T: ClassTag]
A Resilient(弹性) Distributed(分布式) Dataset (RDD)
Represents(代表) an immutable(不可变), partitioned(分区) collection of elements that can be operated(处理) on in parallel(并行)
将数据划分为很多分区(partitioned),不同分区的数据存在在不同的机器里面,每个分区的数据可以被一个Task进程处理分析

This class contains the basic operations available on all RDDs, such as map, filter, and persist
所有的RDD都一些基本的操作,比如map,filter,persist
PairRDDFunctions contains operations available only on RDDs of key-value pairs, such as groupByKey and join;
RDD中的类型是键值对(二元组),RDD隐式转换PairRDDFunctions,PairRDDFunctions方法我们就可以用,比如有groupByKey,reduceByKey,join

  • Internally, each RDD is characterized by five main properties:
    • A list of partitions 分区列表
    • A function for computing each split 每一个分片可以被一个函数处理(并行)
    • A list of dependencies on other RDDs
      一个RDD依赖于其他RDD(RDD怎么来)
      查看依赖
      println(wordCountRDD.toDebugString)
    • Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
      可选,如果RDD的值是二元组,你可以指定分区
    • Optionally, a list of preferred(最优) locations to compute each split on (e.g. block locations for an HDFS file)
      可选,最优的路径中读取分片数据

RDD创建方式

在这里插入图片描述
在这里插入图片描述

RDD中函数的分类

转换函数Tansformation

一个RDD调用函数之后 转换为另外一个RDD
	map,filter,reducBykey

action函数

一个RDD调用函数之后,不会转换为一个RDD,触发一个Job的执行
比如
	count ->Long
	first -> 第一条数据
	take ->获取前几条数据
	top->获取前几条数据(排序)
	foreach ->打印所有的数据
	saveAsTextFile ->保存数据到文件

持久化persisitent.

def persist(newLevel: StorageLevel)
def unpersist(blocking: Boolean = true)

class StorageLevel private(
private var _useDisk: Boolean, //磁盘
private var _useMemory: Boolean, //内存
//JVM内存中tachyon(基于内存的分布式文件系统)
private var _useOffHeap: Boolean, /
private var _deserialized: Boolean, 反序列化
private var _replication: Int = 1) //副本个数
extends Externalizable
什么情况下,RDD数据需要进行持久化呢???
(1)某个RDD数据,被多次使用
重复RDD
(2)某个RDD数据来自不易,使用超过1次
经过复杂的处理得到RDD
(3)通常选择的策略
MEMORY_ONLY_2 -如果内存足够
MEMORY_AND_DISK_SER_2 -如果内存不够,先内存后磁盘,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名一小卒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值