SparkCore阶段练习

2024-01-10 10:33:44

阶段练习

  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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。