开发者社区> 问答> 正文

下列代码中提取年份和气温怎样执行的?

已解决

下列代码中提取年份和气温怎样执行的?

public class MaxTemperatureMapper
extends Mapper<LongWritable,TextTextIntWritable>{ 
private static final int MISSING=9999;
@Override
public void map(LongWritable key,Text value,Context context)
throws lOException,InterruptedException{ 
String line=value.toString();
String year=line.substring(15,19); 
int airTemperature;
if(line.charAt(87)=='+'){// parselnt doesnt like leading plus signs airTemperature=Integer.parselnt(line.substring(88,92));
}else {
airTemperature=Integer.parselnt(line.substring(87,92));
}
String quality=line.substring(92,93);
if (airTemperature!=MISSING&&qualitymatches("[01459]")){ 
context.write(new Text(year),newIntWritable(airTemperature));
}

展开
收起
青城山下庄文杰 2022-10-29 21:17:00 470 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    提取年份和气温的执行由map函数给一个字符串把15到19年份抽取出来,看符号是+还是-,如果是+直接取出4个字符,生成整数,如果是-,把包含-在内的拿出来一起解析,得到温度,01459表示温度质量可以接受,其他不能接受,产生年份+温度的数据。

    2022-10-29 21:23:12
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
问答排行榜
最热
最新

相关电子书

更多
4个迭代,从批量交...1573957773.pdf 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载