0
点赞
收藏
分享

微信扫一扫

RDD编程

IT影子 2022-01-28 阅读 75


RDD编程

1.RDD编程概述—-整个spark的核心

2.pari RDD

3.共享变量【重要】

4.数据读写

5.WordCount程序解析

1.RDD编程概述

1.RDD创建,

01.Spark采用textFile()方法从文件系统中加载数据创建RDD

该方法把文件的URI作为参数,这个URI可以是:

001.本文件系统的地址;

002.或者是分布式文件系统HDFS的地址

003.或者是Amazon s3的地址

val lines = sc.textFile(“file:///usr/local/spark/mycode/wordcount/word.txt”)

这里的lines就是一个rdd,并且rdd中的元素是String类型

02.可通过SparkContext的parallelize()方法,在Driver中已经存在的集合上创建

val arr = Array(1,2,3,4,5)

val rdd = sc.parallelize(arr)

rdd中的每个元素都是int类型

或者也可以通过列表创建

2.RDD操作

01转换操作

02行动操作

触发计算

常见如下:

count()

collect()

first()

take(n)

reduce(func)

foreach(func)

03惰性机制

持久化,(解决重复计算的问题)

标记为持久化

1.可以使用persist()方法对一个RDD标记为持久化

2,持久化后的RDD将会被保留在计算节点的内存中被后面的行动操作继续使用

3,persist(MEMORY_ONLY)

persist(MEMORY_AND_DISK)

cache()

unpersist()

3.分区

增加并行度:RDD通常很大,会被分成很多个分区。

减少通信开销

手动设置分区

01,创建RDD时:调用textFile和parallelize方法时手动指定分区数:​​sc.textFile(path,partitionNum)​

02,通过转换操作得到新的RDD时,直接调用repartition方法即可

这种情况常常用在计算进行了大半部分的时候,因为之前很多数据集都已经计算完全,所有不再需要很多的线程来计算,所以减少分区的数量很有必要。



举报

相关推荐

0 条评论