SparkCore阶段练习

阶段练习

  1. 查看数据集格式

    SparkCore阶段练习_第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()
      }
    SparkCore阶段练习_第2张图片

    SparkCore阶段练习_第3张图片

你可能感兴趣的:(Spark,大数据,spark,大数据)