- 新增 AnnualIndustrialPowerMapper 和 AnnualIndustrialPowerReducer 类 - 新增 MonthlyResidentialPowerMapper 和 MonthlyResidentialPowerReducer 类 - 实现 Main 类,包含三个 MapReduce 作业的运行逻辑 - 添加单元测试 App 和 AppTest - 创建项目配置文件,如 pom.xml、.gitignore等
26 lines
814 B
Java
26 lines
814 B
Java
import org.apache.hadoop.io.Text;
|
|
import org.apache.hadoop.mapreduce.Reducer;
|
|
|
|
import java.io.IOException;
|
|
|
|
public class ProvinceMaxDailyPowerReducer extends Reducer<Text, Text, Text, Text> {
|
|
|
|
@Override
|
|
protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
|
|
String maxRecord = null;
|
|
double maxValue = Double.MIN_VALUE;
|
|
|
|
for (Text value : values) {
|
|
String[] parts = value.toString().split(":");
|
|
double powerUsage = Double.parseDouble(parts[2]);
|
|
if (powerUsage > maxValue) {
|
|
maxValue = powerUsage;
|
|
maxRecord = value.toString();
|
|
}
|
|
}
|
|
|
|
if (maxRecord != null) {
|
|
context.write(key, new Text(maxRecord));
|
|
}
|
|
}
|
|
} |