spark单词统计以及排序

package WorldCount

import org.apache.spark.{SparkConf, SparkContext}

object RddT {
//单词统计
def main(args: Array[String]): Unit = {
//权限被拒绝加下面代码
System.setProperty(“HADOOP_USER_NAME”, “root”)

// 实例化配置

val conf = new SparkConf()

// 指定 spark 任务名称

conf.setAppName(“Spark Pi”)

//指定 spark 任务的执行模式 有三种

conf.setMaster(“local”)
配置

val sc = new SparkContext(conf)

获取数据

val lines = sc.textFile("hdfs://192.168.0.101:8020/goods.txt")
//(0)只取下标是1的元素字符串模式  如果是数组类型的用flatmap扁平就好

val words = lines.map(_.split("\t")(0))

//为每个单词统计为1 (word,1) 是元组
//       (13200,1)
//       (10012,1)
//       (10012,1)
//       (10012,1)

val tulp = words.map((_,1))

// 进行汇聚 单词出现的次数一次加1 下面的位数是出现的次数
//       (13200,1)
//       (10012,3)

val re = tulp.reduceByKey(_ + _)

//将k和v调换位置,再将k降序排序"false"再调换k和v

val str1 = re.map(x => (x._2,x._1)).sortByKey(true ).map(x => (x._2,x._1))

//拼接成字符串\t为分隔
//       13200  1
//       10012  3

val str2 = str1.map(x => {x._1+"\t"+ x._2})

//如果不写hdfs://192.168.0.101:8020 会输出本地磁盘上面

str2.saveAsTextFile(“hdfs://192.168.0.101:8020/opt1/out/wce”)

}

}

下面的函数是指定分区

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值