Spark实例WordCount(统计+排序)

实例描述

  • 读文本
  • 分词
  • 去标点
  • 词频统计
  • 排序

代码片段

val conf = new SparkConf().setAppName("WordCount").setMaster("local[4]")

val sc = new SparkContext(conf)

val res = sc.textFile("E:\\The_Godfather.txt", 2)                    //读文件
            .flatMap(line => line.split(" "))                        //以空格分词
            .map{w =>
                 val lower = w.toLowerCase()                         //将字符串转为全小写
                 val pattern = "[a-z]".r
                 val clean = (pattern findAllIn lower).mkString("")  //去掉除小写字母外的其他字符
                 (clean, 1)                                          //返回键值对
                }
            .filter(_._1.length >= 1)                                //过滤掉空单词
            .reduceByKey(_+_)                                        //词频统计
            .sortBy(_._2, ascending = false)                         //排序
            .take(100)                                               //取前100位

res.foreach(println)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值