首页 > 其他 > 详细

spark学习进度10(阶段练习)

时间:2021-01-10 15:16:34      阅读:18      评论:0      收藏:0      [点我收藏+]

阶段练习

一、看看数据集格式

技术分享图片

 

 

二、明确需求

三、明确步骤

  1、读取文件

  2、抽取需要的列

  3、以年月为基础,进行reduceByKey统计东四地区的PM

  4、排序

  5、获取结果

四、编码

  1、拷贝数据集

  2、创建类

  3、编写代码

  4、运行测试

 @Test
  def reduce():Unit={
    //创建sc对象
    val conf=new SparkConf().setMaster("local[6]").setAppName("stage_practice")
    val sc=new SparkContext(conf)
    //读取文件
    val source=sc.textFile("dataset/BeijingPM20100101_20151231_noheader.csv")
    //通过算子处理数据
    //1、抽取数据,年、月、PM(年月放一起)((年,月),Pm)
    source.map(item=>((item.split(",")(1),item.split(",")(2)),item.split(",")(6)))
    //2、清洗,过滤掉空的和NA
      .filter(item=>StringUtils.isNoneEmpty(item._2) && !item._2.equalsIgnoreCase("NA"))
    //3、聚合
      .map(item=>(item._1,item._2.toInt))
      .reduceByKey((curr,agg)=>curr+agg)
    //4、排序
      .sortBy(item=>item._2,ascending = false)//为false之后就是降序显示了
    //获取结果
      .take(10)
      .foreach(item=>println(item))
    //关闭测试
    sc.stop()
  }

技术分享图片

 

 总结:

技术分享图片

 

 

spark学习进度10(阶段练习)

原文:https://www.cnblogs.com/dazhi151/p/14257504.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!