【spark】map算子n种简化写法


一、map算子的简化写法

如下最原始的写法,写法代码量比较多,没有更好的使用代码简化。
代码如下(示例):

  def main(args: Array[String]): Unit = {
    
    
    val sparkconf = new SparkConf().setMaster("local[*]").setAppName("test")
    var sc =  new SparkContext(sparkconf);
    val rdd = sc.makeRDD(List(1,2,3,4))
    def mapFunction(num:Int):Int={
    
    
      num*2;
    }
    val value = rdd.map(mapFunction)
    value.collect().foreach(println)
    sc.stop();
  }

这种写法就比较麻烦,下面写法,依次简化

    //使用匿名函数
    val value = rdd.map((num:Int)=>{
    
    num*2})
    // 当函数代码只有一行,大括号可以省略,这个java也有这种写法
    val value = rdd.map((num:Int)=>num*2)
    //参数类型只有一个,可以推断出来, 类型也可以省略
    val value = rdd.map((num)=>num*2)
    // 如果参数只有一个,小括号也可以省略
    val value = rdd.map(num=>num*2)
    //num只出现了一次,而且是按照顺序出现的,则num可以通过  _ 来表示
    val value = rdd.map(_*2)

猜你喜欢

转载自blog.csdn.net/qq_30285985/article/details/110710578