集群运行Spark与RDD算子创建与使用

本文介绍了如何启动Spark shell,并详细讲解了Spark集群的角色、RDD的概念、特点以及创建方法。RDD算子包括Transformation和Action,如map、filter、reduceByKey等,其中Transformation是懒加载的。此外,还讨论了Action如collect、saveAsTextFile和count等操作及其执行原理。
摘要由CSDN通过智能技术生成

启动spark­shell

本地模式:bin/spark-shell
集群启动:bin/spark-shell --master spark://spark-01:7077
–total-executor-cores 2
–executor-memory 500mb

spark集群角色

|Yarn 						|Spark 		|作用|
|ResourceManage				| Master 	|管理子节点|
|NodeManager				| Worker 	|管理当前节点|
|YarnChild 					|Executor	|处理计算任务|
|Client+ApplicationMaster	|SparkSubmit|提交计算任务|

集群下通过sc.textFile打开的文件需要在各个集群都有,不然报错

sparkRDD算子

DD(Resilient Distributed DataSet)是分布式数据集。RDD是Spark最基本的
数据的抽象。
scala中的集合。RDD相当于一个不可变、可分区、里面的元素可以并行计算的集合。
RDD特点:具有数据流模型的特点
自动容错
位置感知调度
可伸缩性
RDD允许用户在执行多个查询时将工作集缓存在内存中,可以重用工作集,大大的提升了
查询速度。

RDD类型分为:
1)Transformation
转换
2)Action
动作

RDD创建

RDD分为两种类型:
1)Transformation(lazy-》懒加载)
2)Action(触发任务)

1.普通创建:通过Transformation

2.并行创建:sc.parallelize()
参数有2个,第一个是seq序列,第二个是并行度

3.makeRDD创建
有两种重写方式
第一种:默认给出适合的分区
第二种:可以给出第二个参数,并行度(task数),实际调用了parallelize

常用Transformation

map(func)
flatMap(func)
sortby
reduceByKey
在这里插入图片描述
-》filter
过滤
-》union
并集
在这里插入图片描述
不排序,不去重
-》groupByKey
分组
在这里插入图片描述
reduceByKey 和groupByKey分别进行wordcount
在这里插入图片描述
reduceByKey 和groupByKey的区别:
https://blog.csdn.net/weixin_41804049/article/details/80373741
-》intersection
交集
在这里插入图片描述
-》join
关联
-》leftOuterJoin
左连接
保留左侧RDD,右侧如果join上保留 没join上None
-》rightOuterJoin
右连接
在这里插入图片描述
-》cartesian
笛卡尔积
行数相乘,不去重
在这里插入图片描述
Transformation特点:
1)生成新的RDD
2)lazy懒加载 (等待处理 ,不会马上处理数据,记录转换的状态)
3)并不会存储真正的数据,记录了转换关系

常用的Action

1)collect
收集

2)saveAsTextFile(path)
存储文件
底层存储方式,先存5B的文件,很小,算一片,600B,大了,进行切分,计算出203来切分,然后总共6个片,每个worker存三分(2个worker),也就是三个Task任务
三份数据:5B 5B 600B
理想切分:5+5+600=610 610/3 = 203
5B一片
5B一片
203一片
203一片
203一片
1一片

rdd1.partitions.length
查看分区数

3)count
计数

4)reduce
聚合

5)countByKey()

根据key计数

6)take(n)
取出多少个元素

7)first
返回RDD的第一个元素

8)takeOrdered(n)
取出多少个元素 默认正序

9)top(n)
倒序排序 取出元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值