spark--transform算子--mapPartitions
来源:互联网 发布:大数据 书 编辑:程序博客网 时间:2024/05/16 06:38
import org.apache.spark.{SparkConf, SparkContext}import scala.collection.immutable.HashMapimport scala.collection.mutable.ArrayBuffer/** * Created by liupeng on 2017/6/15. */object T_mapPartitions { System.setProperty("hadoop.home.dir","F:\\hadoop-2.6.5") def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("mapPartitions_test").setMaster("local") val sc = new SparkContext(conf) //准备一下数据 val names : List[String] = List("liupeng", "xuliuxi", "xiaoma") val nameRDD = sc.parallelize(names) //map算子,一次就处理一个partition的一条数据 //mapPartitions算子,按照分区遍历,一次处理一个partition中所有的数据 //推荐的使用场景!!! //如果你的RDD的数据不是特别多,那么采用mapPartitions算子代替map算子,可以加快处理速度 //比如说100亿条数据,你一个partition里面就有10亿条数据,不建议使用mapPartitions //内存溢出 def showCapital(x : Option[Int]) = x match { case Some(s) => s case None => 0 } def scoreFunc(iter : Iterator[String]) : Iterator[Int]= { val res = ArrayBuffer[Int]() var scoreMap = new HashMap[String, Int] scoreMap += ("liupeng" -> 150) scoreMap += ("xuliuxi" -> 120) scoreMap += ("xiaoma" -> 100) while (iter.hasNext) { var name : String = iter.next() var score = scoreMap.get(name).get res += score println(name) } return res.iterator } val result = nameRDD.mapPartitions(scoreFunc) result.foreach(println) }}
运行结果:
阅读全文
0 0
- spark--transform算子--mapPartitions
- spark--transform算子--cartesian
- spark--transform算子--coalesce
- spark--transform算子--cogroup
- spark--transform算子--distinct
- spark--transform算子--filter
- spark--transform算子--flatMap
- spark--transform算子--groupByKey
- spark--transform算子--intersection
- spark--transform算子--join
- spark--transform算子--map
- spark--transform算子--mapPartitionsWithIndex
- spark--transform算子--parallelized
- spark--transform算子--reduceByKey
- spark--transform算子--repartition
- spark--transform算子--sample
- spark--transform算子--sortByKey
- spark--transform算子--union
- 热门工具推荐:
- Github入门
- VMware下,Hadoop集群的配置
- Allegro DRC 就当掉解决方法
- FZU2268 Cutting Game(数学,规律)(第七届福建省大学生程序设计竞赛)
- spark--transform算子--mapPartitions
- 第七届福建省赛 【(5+2)/10】
- 发表在 Science 上的一种新聚类算法
- Crazy Learning for Day 18
- Java单例模式在多线程环境下的性能测试对比实验分析
- Leetcode 461. Hamming Distance
- 自定义View,自定义Switch样式
- GirdView的学习
- 《MNIST学习》读取数据