使用Spark-Core导入txt文件并格式化输出

9 篇文章 0 订阅
4 篇文章 0 订阅

目标文件loudacre.txt (文件存于我的Linux训练机上面的 /home/training/Documents/loudacre.txt ) 文件的每行用一个 TAB 分割

 代码:

//导入文件
var trainingrecord = sc.textFile("file:///home/training/Documents/TrainingRecord.txt")
//使用TAB分割,并转化为K-value对,name为key,培训时间(也就是每行第三个)为value
var quiz1 = trainingrecord.map(_.split('\t')).map(pair => (pair(0),Integer.parseInt(pair(2))))
//给每个name的出现次数计数
var quiz1_count = quiz1.map(line => (line._1,1)).reduceByKey(_+_)
//对相同key的value进行求和
var quiz1_sum = quiz1.reduceByKey(_+_)
//将quiz1_sum和quiz1_count进行求和,必须两个key-value对的key相同才能这样做,会变成(key,(value,value))结构
var quiz1_temp = quiz1_sum.join(quiz1_count)
//对quiz1_temp进行格式化,每行的每个字段之间用TAB分割
var quiz1_res = quiz1_temp.map(line => line._1+"\t"+line._2._1+"\t"+(line._2._1/line._2._2)+"\t"+line._2._2)
//循环输出格式化后的结果
quiz1_res.foreach(println)

//过滤出总时间大于8的结果并输出
quiz1_sum.filter(line => line._2 > 8).foreach(println)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值