[Scala] 函数式编程

WordCount

  • sc是spark的一个对象,SparkContext 对象非常重要
  • sc.textFile("hdfs://bigdata111:9000/input/data.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

 匿名函数

  • 可接收参数,有返回值
  • 定义一个数组,把数组中的每个元素乘以3

高阶函数

  • 把一个函数作为另一个函数的参数值

  • map:相当于循环,对某个集合中的每个元素进行操作,返回一个新的集合
    • _:代表循环变量i

  • foreach:相当于循环,对某个集合中的每个元素进行操作,没有返回值
  • filter:过滤,选出满足条件的数据
    • 查询能被2整除的数字

  • zip:合并集合

  • partition:根据断言结果,进行分区

  • find:查找第一个满足条件(断言)的元素

  • flattern:把嵌套结构展开

  • flatMap:相当于 map + flatten
    • 先对两个List调用x=>x.map(_*2)
    • 再合并成一个List

闭包

  • 函数的嵌套:一个函数中包含另一个函数的定义
  • 内函数中可访问外函数的变量

柯里化

  •  把具有多个参数的函数转换为一个函数链,每个节点上是单一函数

 

posted @ 2020-06-02 22:10  cxc1357  阅读(154)  评论(0编辑  收藏  举报