Spark glom
原创
©著作权归作者所有:来自51CTO博客作者塞上江南o的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
- spark outline
- Spark glom 功能
- 案例演示
spark outline
大纲目录
Spark glom 功能
该函数将RDD中每一个分区变成一个数组,并放置在新的RDD中,数组中元素的类型与原分区中元素类型一致
案例演示
需求:有makeRDD(List(1, 2, 3, 4), numSlices = 2),求每个分区的最大值,求出个分区的最大值以后再进行累加
0分区->1,2 ;1分区->3,4
所有分区的最大值击行求和 2 + 4 = 6
package com.xcu.bigdata.spark.core.pg02_rdd.pg022_rdd_transform
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
/**
* @Package : com.xcu.bigdata.spark.core.pg02_rdd.pg022_rdd_transform
* @Desc : glom将每一个分区变成一个数组,并放置在新的RDD中
*/
object Spark04_Glom {
def main(args: Array[String]): Unit = {
//创建配置文件
val conf: SparkConf = new SparkConf().setAppName("Spark04_Glom").setMaster("local[*]")
//创建SparkContext,该对象是提交的入口
val sc = new SparkContext(conf)
//创建RDD
val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4), numSlices = 2)
//求出每一个分区的最大值 0分区->1,2 1分区->3,4
val maxRDD: RDD[Int] = rdd.glom().map(_.max)
//将求出所有分区的最大值击行求和 2 + 4
println(maxRDD.collect().sum)
//释放资源
sc.stop()
}
}