Spark经典案例1-通过采集的气象数据分析每年的最高温度

简单使用Spark、Scala完成对天气数据的指标统计 学习Spark和Scala编程可以帮助我们处理大规模数据,进行数据分析。使用Spark和Scala编写程序可以提高数据处理的效率和灵活性,同时还能够充分发挥分布式计算的优势。通过学习这两门技术,我们可以更好地理解数据处理的流程和原理,并且可以应用到实际的数据分析和统计工作中。总而言之,学习Spark和Scala编程是提升数据处理能力和数据分析技能的重要途径。 阅读详情

原始数据分析
0067011990999991950051507004888888889999999N9+00001+9999999999999999999999
0067011990999991950051512004888888889999999N9+00221+9999999999999999999999
0067011990999991950051518004888888889999999N9-00111+9999999999999999999999
0067011990999991949032412004888888889999999N9+01111+9999999999999999999999
0067011990999991950032418004888888880500001N9+00001+9999999999999999999999
0067011990999991950051507004888888880500001N9+00781+9999999999999999999999

数据说明:
第15-19个字符是year
第45-50位是温度表示,+表示零上 -表示零下,且温度的值不能是9999,9999表示异常数据
第50位值只能是0、1、4、5、9几个数字

package ClassicCase

import org.apache.spark.{SparkConf, SparkContext}

/**
  * 业务场景:通过采集的气象数据分析每年的最高温度
  * 每年的最高温度
  * Created by YJ on 2017/2/7.
  */
object case1 {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("reduce")
    val sc = new SparkContext(conf)
    sc.setLogLevel("ERROR")
    //获取数据
    val one = sc.textFile("hdfs://192.168.109.130:8020//user/flume/ClassicCase/case1")
    //过滤数据
    //0 0670119909 9999195005 1507004888 8888805000 01N9+00781 +999999999 9999999999 999
    val yearAndTemp = one.filter(line => {
      //匹配0、1、4、5、9 ,有其他含义
      val quality = line.substring(50, 51);
      var airTemperature = 0
      //温度: +零上,-零下
      if(line.charAt(45)=='+'){
        //00781
        airTemperature = line.substring(46, 50).toInt
      }else{
        //-00781
        airTemperature = line.substring(45, 50).toInt
      }
      //airTemperature是9999为异常数据,排除,quality必须要是01459 ,数据过滤
      airTemperature != 9999 && quality.matches("[01459]")})
      .map{     //数据挑选,挑选年份和温度
      line =>{
        val year = line.substring(15,19)
        var airTemperature = 0

        if(line.charAt(45)=='+'){
          airTemperature = line.substring(46, 50).toInt
        }else{
          airTemperature = line.substring(45, 50).toInt
        }
        (year,airTemperature)
      }
    }

    //自己实现:
    println("--")
    val groupe = yearAndTemp.groupByKey()
    val groupedTop5 = groupe.map(rdd =>
    { //每个Key,取最大的一个,排序
      (rdd._1,rdd._2.toList.sortWith(_ > _ ).take(5))
    })
    groupedTop5.foreach(println)
    println("--")

    //案例实现:数据排序
    val res = yearAndTemp.reduceByKey(
      (x,y)=> if(x>y) x else y
    )
    res.collect.foreach(x=>println("year : " + x._1+", max : "+x._2))

    //相同key的值相加,传给key的值
    yearAndTemp.reduceByKey(_+_).foreach(println)
    yearAndTemp.reduceByKey((x,y)=> x+y).foreach(println)
    //相同的key的值相比较,取大的值
    yearAndTemp.reduceByKey(
      (x,y) =>
        if(x>y)
          x
        else
          y
    ).collect.foreach(x=>println("year : " + x._1+", max : "+x._2))
    sc.stop()
  }
}

上面为了过滤非法的数据,在map前先做了filter过滤。
spark执行的任务结果:
自己过程:
(1949,List(111)
(1950,List(78, 22, 0, 0, -11))
案例过程:
year : 1949, max : 111
year : 1950, max : 78
推理过程:
(1949,111)
(1950,89)
(1949,111)
(1950,89)
year : 1949, max : 111
year : 1950, max : 78

数据平滑技术全解析:从移动平均到Kalman滤波的降噪与趋势提取 在数据分析与信号处理领域,数据平滑是一类基础且关键的预处理技术,其核心原理是通过数学方法滤除数据中的短期随机波动(噪声),从而提取出长期趋势与稳定模式。这一过程通常基于滑动窗口或递归计算,对数据点及其邻域信息进行加权或拟合,生成更平滑的序列。从工程实践角度看,掌握数据平滑技术能显著提升数据质量,为后续的统计分析、机器学习模型训练(如时间序列预测)以及业务决策提供更可靠的输入。常见的应用场景包括金融时间序列分析、传感器信号去噪、业务指标趋势观察以及工业生产质量控制等。本文聚焦于移动平均、指数平滑、Savitz 阅读详情

相关推荐

企业AI落地:自上而下与自下而上战略的实战平衡术

人工智能在企业中的价值实现,本质上是技术能力与组织能力的协同问题。从基础概念看,AI并非孤立算法,而是嵌入业务流程的智能增强系统;其核心原理在于通过数据驱动决策闭环,提升感知、判断与执行效率。技术价值体现在降本增效、风险可控与敏捷响应三重维度,尤其在金融风控、制造预测性维护、零售智能补货等高ROI场景中已验证显著收益。然而落地瓶颈往往不在模型精度,而在组织惯性、数据主权归属与算力分配机制——这正是‘自上而下’强调治理合规与规模化复用,和‘自下而上’聚焦业务痛感与快速验证的根本分野。本文基于27个真实项目经验

399

大数据开源框架之基于Spark的气象数据处理与分析

本次实验所采用的数据,从中央气象台官方网站(网址:http://www.nmc.cn/)爬取,主要是最近24小时各个城市的天气数据,包括时间整点、整点气温、整点降水量、风力、整点气压、相对湿度等。正常情况每个城市对应24条数据(每个整点一条)。数据规模达到2412个城市,57888条数据,有部分城市部分时间点数据存在缺失或异常。特别说明:实验所用数据均为网上爬取,没有得到中央气象台官方授权使用,使用范围仅限本次实验使用,请勿用于商业用途。

木子一个Lee的博客 1万+

【信息科学与工程学】【数据中心】第三十二篇 云数据中心的计算/存储/网络的核心挑战01

状态方程: SOCk+1​=SOCk​−Qn​ik​Δt​;: 三相电流变换到αβ坐标系: iα​=32​​(ia​−21​ib​−21​ic​), iβ​=32​​(23​​ib​−23​​ic​). 计算瞬时有功功率p和无功功率q,经低通滤波器分离直流分量,反变换得基波电流,差值即为谐波指令。: 节点i的信念 bi​(xi​)=ϕi​(xi​)∏j∈N(i)​mji​(xi​), 消息 mij​(xj​)=∑xi​​ϕi​(xi​)ψij​(xi​,xj​)∏k∈N(i)\j​mki​(xi​).

weixin_49199313的博客 218

使用spark处理天气数据并可视化

天气数据分析 1.爬取河南省2011年-2019年天气数据 file_path:城市列表路径,该文件在我博客资源中 fileName:爬取结果保存路径 import io import sys import requests import os import bs4 from bs4 import BeautifulSoup import numpy as np import pandas as pd sys.stdout = io.TextIOWrapper(sys.stdout.buffer,enco

qq_41811246的博客 9095

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营04

典型值:λ1​∈[−0.02,−0.01], λ2​∈[−0.01,0], η1​,η3​∈[0.1,0.3], η2​,η4​∈[0.05,0.15]参数:δ1​∈[−0.8,−0.3], δ2​∈[−0.5,−0.2], δ3​∈[−0.4,−0.1], δ4​∈[−0.6,−0.2]参数:φ1​∈[0.1,0.3], φ2​∈[−0.2,−0.05], φ3​∈[−0.1,0.1], φ4​∈[−0.3,−0.1]参数:α∈[0.3,0.6], β∈[0.2,0.4], γ∈[0.01,0.03]

weixin_49199313的博客 1208

【信息科学与工程学】计算机科学与自动化——第八十六篇 各类应用上云计算 01

数字孪生:核心是实时性不等式(Δ<Δt)与带宽-精度权衡。数学上归结为带约束的非线性优化。预测性维护:从物理退化方程(Paris 定律)出发,结合贝叶斯推断,云端训练用深度时序模型,边缘推理用轻量模型。机器人协同:本质是多商品流 + 动态障碍物,需用图论(冲突检测)+ 最优控制(轨迹平滑)。工业视觉:延迟由四个环节组成,需用排队论分析流水线瓶颈,量化感知是降低延迟的关键。液压/气动系统上云(涉及流体力学、热力学、控制)机械臂力控/阻抗控制上云(涉及动力学、力/位混合控制)

weixin_49199313的博客 201

【大数据平台】基于Spark的气象数据分析

1.1.研究背景在大数据时代背景下,各行业数据的规模大幅度增加,数据类别日益复杂,给数据分析工作带来极大挑战。气象行业和人们的生活息息相关,随着信息时代的发展,大数据技术的出现为气象数据的发展带来机遇。基于此,本项目使用Spark等大数据处理工具,采用机器学习、深度学习等多种数据分析方法,并借助可视化手段将多种类型数据与复杂数据进行解读与概括,探究大数据技术在气象数据中的应用,给受众传递更有价值的信息,进而有助于提升社会整体生产效率,推动市场经济的有效发展。1.2.研究方案一、选用合适的数据集。历史天气数据

m0_53700832的博客 1万+

大数据期末课设~基于spark的气象数据处理与分析

大数据期末课设~基于spark的气象数据处理与分析 完整版Word 可以拿来直接交作业

Python--爬取天气网站天气数据并进行数据分析

从天气网站中爬取数据,生成excel表格,里面存储南昌市近十一年的天气情况,并对爬取产生的数据进行数据分析。

qq_61275065的博客 6109

利用Spark对气象监测数据进行基本的分析(源码+项目说明).zip

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 利用Spark对气象监测数据进行基本的分析(源码+项目说明).zip

人工智能-spark-基于Spark对全国历史气象数据的分析

基于Spark对全国历史气象数据的分析 用PySpark处理数据 将所有文件读为一个****RDD rdd = sc.wholeTextFiles("file:///" + os.getcwd() + "/china/") **数据清洗 ** 去除字母, -9999等无效数据 进行计算、排序等操作 计算出最大值,最小值,平均值,并按照年份排序。最终得出各个站点以及全国每年的主要气象数据的统计结果。 将结果存入数据库中 得出的结果和stations.txt文件中站点的主要信息分别存入MySQL数据库中。 数据可视化 主要运用了Python的第三方库matplotlib和pyecharts

Hadoop经典案例Spark实现(一)——通过采集的气象数据分析每年的最高温度

Hadoop经典案例Spark实现(一)——通过采集的气象数据分析每年的最高温度

Ganymede的Hadoop世界 1万+

基于Spark的并行K-means气象数据挖掘研究.pdf

基于Spark的并行K-means气象数据挖掘研究.pdf

Hadoop 实例1---通过采集的气象数据分析每年的最高温度

1.原始数据分析0067011990999991950051507004888888889999999N9+00001+9999999999999999999999 0067011990999991950051512004888888889999999N9+00221+9999999999999999999999 0067011990999991950051518004888888889999999

陈先森~ 8595

OpenCV13-图像噪声:椒盐噪声和高斯噪声

考虑到椒盐噪声会在图像中的任何一个位置随机产生,因此对于椒盐噪声的生成,需要使用OpenCV中能够产生随机数的函数。OpenCV中也没有专门为图像添加高斯噪声的函数,对早在图像中添加椒盐噪声的过程,可以根据需求利用能够产生随机数的函数来完成在图像中添加高斯噪声的任务。椒盐噪声又称作脉冲噪声,他会随机改变图像中的像素值,其样子就像是在图像上随机地撒上一些盐粒和黑椒粒,因此被称为椒盐噪声。函数能够产生均匀分布或者高斯分布的随机数,可以利用该函数产生符合高斯分布的随机数,之后在图像中加入这些随机数即可。

SHLYYY 5122

GAN实战:用Python和TensorFlow打造你的第一个生成对抗网络(附完整代码)

本文是一份详细的GAN实战指南,指导读者使用Python和TensorFlow框架从零开始构建并训练一个生成对抗网络。文章涵盖了环境搭建、MNIST数据预处理、生成器与判别器模型构建、对抗性损失函数定义、训练循环编写以及关键的调试技巧,旨在帮助开发者通过动手实践深入理解GAN的核心原理与实现过程。

php55的博客 480

Hadoop经典案例Spark实现(七)——日志分析:分析非结构化文件

Hadoop经典案例Spark实现(七)——日志分析:分析非结构化文件

Ganymede的Hadoop世界 1万+

VINS-Fusion实战:从零搭建无人机视觉惯性导航系统(附ROS配置指南)

本文提供了一份详尽的VINS-Fusion实战指南,涵盖从硬件选型、传感器标定到ROS节点配置与参数调优的全过程。重点解析了如何将VINS-Fusion视觉惯性里程计系统与PX4飞控深度集成,并实现室外GPS融合,旨在帮助开发者从零搭建稳定、高精度的无人机视觉惯性导航系统。

lll78的博客 865

企业级AI落地七步作战地图:从痛点到现金流

企业级AI不是技术炫技,而是以业务痛点为起点、以可验证业务指标为标尺的系统性工程。其核心原理在于绕过抽象战略,直击数据断点、组织适配与流程嵌入三大瓶颈;技术价值体现在降低库存周转天数、提升一次修复率、缩短新品周期等可量化财务影响;典型应用场景覆盖制造业预测性维护、零售智能补货、金融风控协同、医疗冷链预警等高价值闭环。本文聚焦‘有效’‘简单’‘企业级规模’三大热词,提供一张即打即用的实操路径图,帮助CIO、业务总监和一线团队在90天内完成从晨会痛点识别到正向现金流产生的完整闭环。

weixin_34293141的博客 453

利用Langchain生成合成数据的实践指南

合成数据是相对于从真实世界事件中收集的数据而言的人工生成的数据。它用于模拟真实数据,同时避免隐私泄露或遇到真实数据中的局限性。:尽管合成数据有诸多优点,但应谨慎使用,因为它可能无法捕捉真实世界的复杂性。

eahba的博客 397

《python神经网络编程》程序实现

《python神经网络编程》程序实现 通过对这本书的学习,结合这本书的内容: 完成了以下代码: 其中NN.py实现了一个类,这个类可以完成神经网络的初始化,训练以及输入数据并得出结果。 而run.py则是对神经网络类的使用 NN.py: import numpy import scipy.special #神经网络类的实现 class neuralNetwork: #构造函数初始化类 def __init__(self,inputnodes,hiddennodes,outputnodes

ms8617484的博客 619

日本AI发展为何‘慢’?社会信任、中小企业数字化与日语NLP的深层约束

人工智能(AI)作为通用技术,其落地节奏不仅取决于算法与算力,更受制于社会制度、语言特性与组织能力等基础性条件。可解释AI(XAI)在日本成为强制性前置要求,源于福岛核事故后对‘黑箱系统’的集体审慎;中小企业数字化断层则凸显数据采集、标注与治理能力的严重缺失,使先进模型难以在真实产线生效;而日语NLP面临动词活用、敬语分层与专业术语爆炸三重障碍,导致通用大模型在合同审查、工业文档等高价值场景准确率骤降。这些结构性约束共同塑造了日本AI‘小而专’‘重解释’‘强适配’的发展范式——它不追求参数规模或爆发速度,而

weixin_30458043的博客 439

Vue3 - Element Plus上传组件el-upload上传多个文件时,让on-change监听事件仅执行一次并获取最终文件列表方法(开启多选文件并手动上传,拿到文件列表统一循环调用接口上传)

vue3,elementplus,Upload上传,el-upload,文件上传组件,上传组件on-change里执行多次,取消自动上传后change重复执行问题,upload上传多个文件后导致on-change执行多次拿不到最终文件列表,Element-plus的upload组件on-change不断执行怎么办,上传多个文件多次执行调用,上传多个文件时如何只执行一次on-change方法拿到最终的文件列表,vue3elementplus上传组件开启多个上传后导致change方法执行好几次,仅调用一

🏆 前端领域优质创作者 1万+
上一篇: hadoop常用默认端口
下一篇: Spark经典案例2-数据去重
yjgithub
博客等级 码龄11年 53粉丝 105原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值