目录
一、题目要求
原数据如下:
第一题:月平均气温统计
得到示例结果如下:
第二题:每日空气质量统计
示例结果如下:
第三题:各空气质量分类天数统计
结果示例如下:
下面我将对这三个问题进行详细解答。
二、问题思路
(一)、月平均气温统计
1、思路
这道题的解题思路是,要求每月的平均气温,但数据给的是每天的气温,所以需要将每天的数据分片,将每日编号(20160101)切片成每月编号(201601),这样再进行对每月的气温取平均值就可以了。
写这道题之前可以先把mapper和reducer里的k,v都想好了,然后再写。mapper里是k1,v1,k2,v2,reducer里是k3,v3,k4,v4。如下:
k1 0行,1行 偏移量 LongWritable
v1 每一行的数据 Text
k2 201601 Text
v2 201601 对应的所有气温 -2,-3,。。。 IntWritable
k3 201601 Text
v3 {-2,-3,-3。。。} IntWritable
k4 201601,201602。。。 Text
v4 avg(每月气温平均值) FloatWritable
avg = total/count
2、代码
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ST1-weather</artifactId>
<version>1.0-SNAPSHOT</version>