SparkCore阶段练习

发布时间:2024年01月10日

阶段练习

  1. 查看数据集格式

  2. 明确需求

  3. 明确步骤

    1. 读取文件

    2. 抽取需要的列

    3. 以年月为基础,进行 reduceByKey 统计Dongsi地区的PM

    4. 排序

    5. 获取结果

  4. 编码

    1. 拷贝数据集

      data.rar(已上传资源——SparkCore阶段练习数据集

    2. 创建类

    3. 编写代码

    4. 运行测试

      @Test
      def pmProcess(): Unit = {
       ?// 1. 创建sc对象
       ?val conf = new SparkConf().setMaster("local[6]").setAppName("stage_practice")
       ?val sc = new SparkContext(conf)
       ?// 2. 读取文件
       ?val source = sc.textFile("./dataset/BeijingPM20100101_20151231_noheader.csv")
       ?// 3. 通过算子处理数据
       ?// ?  3.1 map切数据 ((年,月),pm)
       ?source.map(item => ((item.split(",")(1), item.split(",")(2)), item.split(",")(6)))
       ?// ?  3.2 filter 过滤空 和 NA 数据
       ?  .filter(item => StringUtils.isNotEmpty(item._2) && !item._2.equalsIgnoreCase("NA")) // equalsIgnoreCase 判断两个字符串是否相等,忽略字符串的大小写,
       ?// ?  3.3 toInt 数据类型转换
       ?  .map(item => (item._1, item._2.toInt))
       ?// ?  3.4 聚合数据
       ?  .reduceByKey((curr, agg) => curr + agg)
       ?// ?  3.5 排序
       ?  .sortBy(item => item._2, ascending = false) // 降序
       ?// 4.获取结果
       ?  .take(10)
       ?  .foreach(item => println(item))
       ?// 5. 关闭sc
       ?sc.stop()
      }

文章来源:https://blog.csdn.net/m0_56181660/article/details/135467411
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。