spark的rdd分析

在这里插入图片描述以一个简单的wc(单词计数)程序为例

val rdd = sc.textFile("file:///root/wc").flatMap(_.split(" ")).map(_,1).reduceByKey(_,_).saveAsTextFile("file:///root/wc00")

上面单词计数总共产生6个rdd
可以执行下面语句查询
rdd数量查询

rdd.toDebugString

rdd依赖查询

rdd.dependencies 

textFile会产生两个rdd,第一个是hadoopRdd(k,v形式),第二个是MapPatitionsRdd
flatMap产生一个rdd是MapPatitionsRdd
map产生一个rdd是MapPatitionsRdd
reduceByKey产生ShuffledRdd(把数据从上游拉过来进行聚合)
saveAsTextFile产生MapPatitions
RDD缓存
spark运算非常快的原因之一就是在不同操作中可以在内存中持久化或者缓存整个数据集
比如:
val rdd=sc.textFile(“hdfs://192.168.1.101:9000/root/wc/input.txt”).cache()
#cache不是立即缓存也是一个转换动作(延迟加载)
#查看192.168.1.101:4040/job
persist()也是缓存需要输入入参StorageLevel,缓存级别(可以根据文件重要情况缓存1-2份)
用完后记得清除缓存
rdd.unpersist(true)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值