首页 > 其他 > 详细

RDD

时间:2020-09-18 16:41:51      阅读:38      评论:0      收藏:0      [点我收藏+]
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD


//map(func)
object rdd2 {
  def main(args: Array[String]): Unit = {
    //本地模式
    val conf: SparkConf = new SparkConf().setAppName("My scala word count").setMaster("local")

    //创建spark上下文对象
    val sc = new SparkContext(conf)


    //1)map对所有数据进行操作
    val listRDD: RDD[Int] = sc.makeRDD(1 to 10,2)
    val mapRDD: RDD[Int] = listRDD.map(data=>data*2)
    mapRDD.collect().foreach(println)


    //2)mapPartions对所有分区进行操作
    //mapPartitions效率比map高
    //mapPartitions可能会发生内存溢出
    val mapPartitionsRDD: RDD[Int] = listRDD.mapPartitions(datas => {
      datas.map(data=>data*2)
    })

    mapPartitionsRDD.collect().foreach(println)

    //3)mapPartitionsWithIndex算子,分区号
    val tupleRDD: RDD[(Int, Int)] = listRDD.mapPartitionsWithIndex {
      case (num, datas) => {
        datas.map(data => (data, num))
      }
    }
    tupleRDD.collect().foreach(println)




  }


}

 

RDD

原文:https://www.cnblogs.com/hapyygril/p/13691433.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!