Spark 小内容

Spark 的一些内容

1.函数作用以及返回值类型

foreach
flatMap		返回的迭代器的所有内容构成新的RDD
				是一个序列化的数据而不是单个数据项-- a Seq
map
		map:对集合中每个元素进行操作。 
		flatMap:对集合中每个元素进行操作然后再扁平化。 
groupByKey():--作用以及返回值类型 --对具有相同键的值进行分组
	groupByKey也是对每个key进行操作,但只生成一个sequence
	[K, Iterable[V]]
reduceByKey()  ----------------------------   合并具有相同键的值
	规约,对具有键相同的值合并起来--返回 各键以及 对应键规约出来的结果值 组成的新的RDD
	对大数据进行复杂计算时,reduceByKey优于groupByKey

2.关于分区

01.Spark提供基于分区的map和foreach
	mapPartitions   foreachPartition
	从算子的类型:
		foreachPartition应该属于action运算操作,而 mapPartitions 是在Transformation中
		返回值上:mapPartitions 返回值类型迭代器: Iterator[U]  该元素的迭代器
		应用场景上:
		mapPartitions可以获取返回值,继续在返回RDD上做其他的操作
         foreachPartition因为没有返回值并且是action操作,所以使用它一般都是在程序末尾比如说要落地数据到存储系统中如mysql,es,或者hbase中,
02.并行度
		001.对于已知的RDD进行重分区
		002.数据混洗操作中,使用参数的方式为混洗后的RDD指定并行度

重分区:
	repartition() 把RDD随机打乱并分成设定的分区数目
	coalesce():减少分区--没有打乱
		对RDD的分区进行重新划分,repartition内部调用了coalesce,参数shuffle为true
		  扩大分区
		  减少分区
			coalesce算子,可以手动减少DataFrame的partition数量,并且不用触发shuffle,
			这也是coalesce跟repartition的区别
			repartition一定会触发shuffle

转载于:https://my.oschina.net/sunmin/blog/3035483

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值