微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐