当前位置: 首页 > news >正文

气象大数据案例项目(求各气象站的平均气温)

气象大数据案例项目(求各气象站的平均气温)

  • 一、项目需求
  • 二、数据格式
  • 三、项目开发
    • 3.1 在windows 进行开发
    • 3.2 运行结果
    • 3.3 对项目打包

一、项目需求

现在有一份来自美国国家海洋和大气管理局的数据集,里面包含近30年每个气象站、每小时的天气预报数据,每个报告的文件大小大约15M。一共有10个气象站,每个报告文件的名字包含气象站ID,每条记录包含气温、风向、天气状况等多个字段信息。现在要求统计美国各气象站30年平均气温。

二、数据格式

在这里插入图片描述
一共10份气象站的数据
在这里插入图片描述
文档里面的数据格式,注意 -9999 说明数据缺失
在这里插入图片描述

三、项目开发

3.1 在windows 进行开发

  • 引入 Hadoop 依赖
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.10.2</version>
</dependency>
  • 开发脚本
package com.feifei.mapreduce;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileSplit;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;import java.io.IOException;public class WeatherAnalysis {public static class MyMapper extends Mapper<Object, Text, Text, IntWritable> {@Overrideprotected void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context) throws IOException, InterruptedException {String line = value.toString();int temperature = Integer.parseInt(line.substring(14, 19).trim());if(temperature != -9999){FileSplit fileSplit = (FileSplit) context.getInputSplit();String id = fileSplit.getPath().getName().substring(5, 10);context.write(new Text(id), new IntWritable(temperature));}}}public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {private IntWritable mean = new IntWritable();@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {int sum = 0;int count = 0;for (IntWritable val : values) {sum += val.get();}mean.set(sum / count);context.write(key, mean);}}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setJarByClass(WeatherAnalysis.class);job.setJobName("WeatherAnalysis");job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutputFormat.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.setMapperClass(WeatherAnalysis.MyMapper.class);job.setReducerClass(WeatherAnalysis.MyReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);job.waitForCompletion(true);}
}

在这里插入图片描述

  • 设置入参和保存路径

在这里插入图片描述

3.2 运行结果

在这里插入图片描述

3.3 对项目打包

 mvn clean package

在这里插入图片描述

相关文章:

气象大数据案例项目(求各气象站的平均气温)

气象大数据案例项目&#xff08;求各气象站的平均气温&#xff09; 一、项目需求二、数据格式三、项目开发3.1 在windows 进行开发3.2 运行结果3.3 对项目打包 一、项目需求 现在有一份来自美国国家海洋和大气管理局的数据集&#xff0c;里面包含近30年每个气象站、每小时的天…...

博客摘录「 一个ModBus RTU程序(支持01、02、03、05、06、15、16功能码)」2024年4月19日

发送数据最好改为中断模式&#xff0c;不然通信速度不够。...

Vue3学习笔记第一天

MVVM Vue是一种用于构建用户界面的JavaScript框架。MVVM 是Vue采用的一种软件架构模式&#xff0c;用于构建交互式的用户界面。它的全称是 Model-View-ViewModel&#xff0c;这三个部分分别代表了应用程序的不同层次和角色&#xff1a; Model&#xff08;模型&#xff09;&…...

C++之类与对象(完结撒花篇)

目录 前言 1.再探构造函数 2.类型转换 3.static成员 4. 友元 5.内部类 6.匿名对象 7.对象拷贝时的编译器优化 结束语 前言 在前面的博客中&#xff0c;我们对类的默认成员函数都有了一定了解&#xff0c;同时实现了一个日期类对所学的没内容进行扩展延伸&#xff0c;本…...

代码质量的守护者:Python静态代码分析工具的集成之道

标题&#xff1a;代码质量的守护者&#xff1a;Python静态代码分析工具的集成之道 在软件开发过程中&#xff0c;代码质量是至关重要的一环。Python作为一种流行的编程语言&#xff0c;拥有众多的静态代码分析工具&#xff0c;它们能够在代码运行之前检测潜在的错误和代码风格…...

JVM -- 类加载器

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现访问接口和类字节码数据的技术。类加载器只负责加载过程中的字节码获取并加载到内存的这一过程。 一、 类加载器的分类 类加载器的详细信息可以使用Arthas通过classloader命令查看&#xff1a; 1.启动类加载器(Boots…...

OLAP引擎之StarRocks

StarRocks 是一款新兴的开源分布式实时分析型数据库&#xff0c;专为高性能、高并发的数据分析场景设计。它结合了传统数据仓库和大数据技术的优势&#xff0c;提供了强大的实时数据处理和分析能力。以下是对 StarRocks 的详细介绍&#xff0c;涵盖其基本概念、核心特性、架构设…...

基于微信小程序的小区业主服务系统(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…...

C++ | Leetcode C++题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; class Solution { public:int countRangeSumRecursive(vector<long>& sum, int lower, int upper, int left, int right) {if (left right) {return 0;} else {int mid (left right) / 2;int n1 countRangeSumRecursive(sum,…...

C# Winform 多窗体切换方式一

一、简介 在 Winform 开发中&#xff0c;多窗体的切换是一个常见的需求&#xff0c;比如登录成功后&#xff0c;切换至主界面&#xff0c;在网上查阅相关的资料&#xff0c;你会发现很多都是用 form2.Show(); this.Hide(); 这种方式&#xff0c;这种方式也存在一些问题&#…...

笔记本CPU天梯图(2024年8月),含AMD/骁龙等新CPU

原文地址&#xff08;高清无水印原图/持续更新/含榜单出处链接&#xff09;&#xff1a; 2024年8月笔记本CPU天梯图 2024年8月笔记本CPU天梯图 2024年8月5日更新日志&#xff1a;常规更新Cinebench R23、PassMark笔记本CPU天梯图&#xff0c;新增Geekbench 6.2单核多核天梯图&…...

GitLab-CI/CD指南

由于公司没有运维&#xff0c;写go服务时各个环境编译部署还是略显麻烦&#xff0c;由于代码管理使用的是 gitlab&#xff0c;所以决定使用 gitlab 自带的 CI/CD 来做自动编译和部署&#xff0c;这样每次提交代码以后就可以自动部署到服务器上了。 gitlab 本身只有 CI/CD 的接…...

io目录操作学习

1、基本概念 目录也是一种文件&#xff0c;因此操作流程与普通文件类似&#xff0c;有诸如打开、关闭、定位等概念&#xff0c;但目录是一种特殊的文件&#xff0c;目录存储的数据的最小单位并不是字符&#xff0c;而是目录项。这使得目录跟普通文件又有区别。 在Linux中&…...

Ant-Design-Vue

Ant-Design-Vue是蚂蚁金服Ant Design官方推荐的Vue版UI组件库&#xff0c;它继承了Ant Design的设计语言和Vue.js的易用性&#xff0c;为开发者提供了丰富、高质量的Vue组件&#xff0c;极大地简化了前端开发流程。以下是一份详细的Ant-Design-Vue快速上手指南及排坑建议&#…...

2024互联网暑期实习面经和流程记录分享

2024互联网暑期实习面经和流程记录分享 面试经验和流程需要注意的点 面试经验和流程 因为敏感信息的原因&#xff0c;这里涉及到公司名字的全部进行打码 笔者投递和面试了很多公司&#xff0c;具体有包括算法和开发岗&#xff0c;下面的公司一律用字母代替。 O公司&#xff0…...

风云崛起之拉氏变换和拉式逆变换

图像的分割写出来了&#xff0c;但是写的不好&#xff0c;暂时先不发了。这两天小y想在把拉式变换的内容写出来&#xff0c;小y最近再看信号和电路&#xff0c;需要复习数学&#xff0c;所以把这点写出来。 首先要推出分布积分的公式&#xff0c;我们知道积分和微分为逆运算&am…...

1、.Net UI框架:WinUI - .Net宣传系列文章

WinUI(Windows UI Library)是微软提供的一个用于构建Windows应用程序的本机UI平台组件。它与Windows应用SDK紧密相关&#xff0c;允许开发者创建适用于Windows 10及更高版本的应用程序&#xff0c;并且可以发布到Microsoft Store。WinUI 3是最新的一代&#xff0c;它提供了与操…...

计算机的错误计算(五十九)

摘要 讨论用 Go语言实现的 函数的计算精度问题。 由计算机的错误计算&#xff08;五十五&#xff09;知&#xff0c;国际 IEEE 754 标准中&#xff0c; 函数具有定义域 . 那么&#xff0c;在常规编程模式下用 Go语言实现这个函数&#xff0c;其输出的精度如何&#xff1f; …...

【数学分析笔记】第1章第1节:集合(1)

作为一个计算机专业的人&#xff0c;想自学一下数学专业的专业课补一补AI基础&#xff0c;顺带写个笔记&#xff0c;听的课是陈纪修版本的数学分析&#xff1a; 1. 集合与映射 1.1 集合 1.1.1 基本概念 集合&#xff1a;由某种特定性质的具体的或抽象的对象汇集的总体。 集…...

计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

实战指南:SpringBoot与KingbaseES的高效集成与性能调优

1. SpringBoot与KingbaseES集成基础 第一次接触KingbaseES时&#xff0c;我完全被它的兼容性震惊了。这个国产数据库不仅能完美支持标准SQL&#xff0c;还能无缝对接Oracle、MySQL等语法体系。记得当时接手一个老项目迁移&#xff0c;原本担心要重写大量SQL&#xff0c;结果90%…...

生产环境部署 AI Agent 的最佳实践

生产环境部署 AI Agent 的最佳实践 第一部分 生产AI Agent的爆发与部署困境深度剖析 (本部分约12000字) 1.1 核心概念:从“玩具Agent”到“生产级Agent”的定义边界 1.1.1 什么是广义的AI Agent? 在过去两年里,“AI Agent”无疑是大模型(LLMs)生态系统中最炙手可热的…...

做自媒体,我是怎么把“不知道写什么”变成“写不完”的

刚开始做自媒体的那半年&#xff0c;我最怕的就是“选题”。每天早上打开文档&#xff0c;脑子里一片空白。上周写了什么&#xff1f;前天写了什么&#xff1f;今天该写什么&#xff1f;完全没方向。有时候坐一个小时&#xff0c;标题都没憋出来。那种感觉特别绝望——不是不想…...

GCC优化禁用指南:精准控制编译行为的5种方法

1. 为什么需要禁用GCC优化&#xff1f; 在嵌入式开发或者调试过程中&#xff0c;我们经常会遇到一些奇怪的bug&#xff1a;明明代码逻辑没有问题&#xff0c;但程序运行时却出现异常。这时候很可能就是编译器优化在"捣鬼"。GCC作为最常用的开源编译器&#xff0c;它的…...

AI FUTURE北京亦庄AI未来大会在京启幕

4月8日&#xff0c;AI FUTURE北京亦庄AI未来大会在北京经济技术开发区&#xff08;简称“北京经开区”&#xff0c;又称“北京亦庄”&#xff09;北京智慧电竞赛事中心正式启幕。这场为期两天的人工智能盛会&#xff0c;以“让每个人看AI的另一面”为主题&#xff0c;集高端论坛…...

Windows环境SonarQube与SonarScanner实战:从零搭建代码质量守护体系

1. 为什么你的项目需要SonarQube&#xff1f; 每次提交代码前&#xff0c;你是不是总在担心那些隐藏的Bug会悄悄溜进生产环境&#xff1f;我见过太多团队在深夜被紧急报警叫醒&#xff0c;原因往往只是一行没处理好的空指针异常。SonarQube就像个24小时值班的代码质检员&#x…...

Ego-Planner仿真不迷路:手把手教你配置PX4位姿真值话题与launch文件(附常见报错解决)

Ego-Planner仿真实战&#xff1a;PX4位姿真值配置与launch文件深度解析 在无人机自主导航领域&#xff0c;仿真环境搭建是算法验证的关键第一步。当你在Ego-Planner仿真中看到"找不到里程计"的红色报错时&#xff0c;那种挫败感我深有体会——明明Gazebo中的无人机模…...

避坑指南:天地图加载GeoJSON绘制省市区划时,你可能遇到的3个关键问题与解决方案

天地图加载GeoJSON绘制行政区划的三大核心难题与实战解决方案 当开发者尝试在天地图平台上叠加GeoJSON数据绘制行政区划时&#xff0c;往往会遇到一些意料之外的"坑"。这些问题不仅影响开发效率&#xff0c;更可能导致最终呈现效果与预期相差甚远。本文将聚焦三个最常…...

嵌入式系统软件抗干扰技术实战解析

1. 嵌入式系统抗干扰技术概述在工业控制、智能家居和物联网设备等嵌入式应用场景中&#xff0c;电磁干扰、电源波动等环境因素常常导致系统运行异常。作为一名有十年嵌入式开发经验的工程师&#xff0c;我处理过数十起由干扰引起的系统故障案例。硬件抗干扰措施如屏蔽、滤波固然…...

易语言开发雷电模拟器中控系统源码包|完整框架+核心模块源代码

温馨提示&#xff1a;文末有联系方式易语言雷电模拟器中控系统源码发布 本套为基于易语言开发的雷电模拟器中控框架完整源码包&#xff0c;涵盖主控逻辑、设备通信、指令调度等核心模块&#xff0c;采用模块化设计&#xff0c;便于二次开发与功能扩展。框架完整性说明 当前版本…...