1. 程式人生 > >scala函數式編程初體驗 ==> 用scala函數實現 WordCount

scala函數式編程初體驗 ==> 用scala函數實現 WordCount

spa val nbsp emp groupby mapred string hadoop map

//定義一個字符串集合

scala> val lines = List("hadoop,hive,spark,hue,mapreduce"," ","hadoop,hue","hdfs, , ,hive","","hadoop,spark")
lines: List[String] = List(hadoop,hive,spark,hue,mapreduce, " ", hadoop,hue, hdfs, , ,hive, "", hadoop,spark)

//功能1 :(不算空格和空串)統計一下集合中總共有多少個單詞?

scala> lines.flatMap(_.split(",")).filter(_.trim.nonEmpty).map((_,1)).map(_._2).reduce(_+_)

res164: Int = 11

//功能2 : 分別統計每一個單詞出現的次數

scala> lines.flatMap(_.split(",")).filter(_.trim.nonEmpty).groupBy(_.toString).mapValues(_.length).foreach(println)
(mapreduce,1)
(hue,2)
(hadoop,3)
(spark,2)
(hive,2)
(hdfs,1)

scala函數式編程初體驗 ==> 用scala函數實現 WordCount