Spark经典案例4-求平局值

Spark经典案例之求平均值,最大最小值,求top值,非结构数据处理,统计每天新增用户数 1、需求分析 对输入文件中数据进行就算学生平均成绩。输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件。 要求在输出中每行有两个间隔的数据,其中,第一个代表学生的姓名,第二个代表其平均成绩。 2、原始数据 1)math: 张三,88 李四,99 王五,66 赵六,77 2)china: 张三,78 李四,89 王五,96 赵六,67 3)english: 张三,80 李四,82 王五,84 赵六,86 样本输出: 张三,82 李四,90 王五,82 赵六,76 阅读详情

1、需求分析
对输入文件中数据进行就算学生平均成绩。输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件。
要求在输出中每行有两个间隔的数据,其中,第一个代表学生的姓名,第二个代表其平均成绩。

2、原始数据
1)math:
张三,88
李四,99
王五,66
赵六,77

2)china:
张三,78
李四,89
王五,96
赵六,67

3)english:
张三,80
李四,82
王五,84
赵六,86

样本输出:
张三,82
李四,90
王五,82
赵六,76

package ClassicCase

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

/**
  * 业务场景:求平局值
  * Created by YJ on 2017/2/8.
  */


object case4 {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("reduce")
    val sc = new SparkContext(conf)
    sc.setLogLevel("ERROR")
    val four = sc.textFile("hdfs://192.168.109.130:8020//user/flume/ClassicCase/case4/*", 3)

    val a = four.filter(_.trim.length > 0) //数据过滤
      .map(line => //数据整理
      (line.trim().split(",")(0), line.trim.split(",")(1).toInt)
    )
      .groupByKey() //按key分组 (张三,CompactBuffer(78, 80, 88))
      .map(x => {
      var num = 0.0
      var sum = 0
      for (i <- x._2) {
        //遍历该值
        sum = sum + i
        num = num + 1
      }
      val avg = sum / num
      val fm = f"$avg%1.2f"   //1.2->取后面两位小数,格式化数据
      println("fm:"+fm)
      (x._1, fm)
    }
    ).collect.foreach(x => println(x._1+"\t"+x._2))

    //资源学习
    var floatVar = 12.456
    var intVar = 2000
    var stringVar = "资源学习!"
    var fs = printf(
      "浮点型变量为 " + "%1.2f, " +
        "整型变量为  " + "%d,"+
        "字符串为 " + " %s", floatVar, intVar, stringVar)
    println(fs)


  }

}

输出结果
fm:90.00
fm:82.00
fm:82.00
fm:76.67
李四 90.00
王五 82.00
张三 82.00
赵六 76.67
浮点型变量为 12.46, 整型变量为 2000,字符串为 资源学习!()

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营01 这是运营的物理和逻辑对象。C4.11xx 传输资源:光纤、微波、卫星链路;频谱资源(Sub-6GHz, 毫米波)。C4.12xx 节点资源:核心路由器、交换机、基站(gNB)、数据中心服务器。C4.13xx 虚拟化资源:由NFV生成的虚拟网络功能(VNF)、容器、虚拟机和网络切片实例。这是实现智能、灵活运营的核心技术集。C4.21xx 软件定义与虚拟化:软件定义网络 (SDN):控制平面与数据平面分离,实现集中、可编程的网络控制。网络功能虚拟化 (NFV):将传统专用硬件设备的功能以软件形式运行在通用硬件上 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第八十四篇 C++分布式软件高并发/高可用算法01

4. 提交:协调者选择提交时间戳(>所有读时间戳),两阶段提交:a) 写意图预提交到所有参与者,b) 参与者持久化后确认,c) 协调者决定提交,异步清理意图。:客户端请求发送到协调节点,协调节点根据路由转发到主分片所在节点。Span有父子关系。1. 索引文档:客户端发送PUT请求到协调节点,协调节点路由到主分片节点,主分片写入本地,然后并行复制到副本分片,等待确认后响应客户端。3. 搜索:客户端发送搜索请求到协调节点,协调节点广播到所有相关分片,每个分片执行查询,返回结果,协调节点合并、排序、分页后返回。

weixin_49199313的博客 1079

Spark编程经典综合案例

1. 求TOP值 2. 求最大值最小值 3. 文件排序 4. 二次排序 5. 连接操作 1. WordCount程序解析

MusicDancing的博客 3464

Spark大数据分析案例

本案例将介绍如何在单机和集群环境下使用Apache Spark进行大数据分析,最终使用Python实现数据的可视化。我们将首先讲解Spark的安装与配置,然后展示如何在单机和集群环境中运行Spark。接下来,我们将使用Python编写Spark应用程序来分析一个公开的数据集。最后,我们将利用Python库如Matplotlib和Seaborn对数据进行可视化。

闲人编程的博客 1774

Spark 之 经典案例

转自:http://blog.youkuaiyun.com/kwu_ganymede/article/details/50474763 Hadoop经典案例Spark实现(二)——数据去重问题 1、原始数据 1)file1: [plain] view plain copy 2012-3-1 a   2012-3-2 b   2012-3

weixin_36630761的博客 756

spark大数据案例

包含了Spark的一系列的小案例,包含core,sql,stream等案例

解决Linux下Questasim中代码字体非常小

Questasim的source窗口里代码字体非常小 你是不是也遇到这样的问题,在使用Vmware时,Questasim的代码字体非常小,小到完全看不见,连断点都没办法标记。 下面我给出我摸索好久的解决办法,分享给大家。 1.首先,版本是Questasim 10.7c,在Vmware16中打开,情况如下: 不多逼逼,直接上图开搞: 给textFontV2设置值:monospace 12 normal roman 这里一定要注意啦,点完apply之后,不要点ok,直接关闭窗口。 ...

SummerXRT的博客 7815

Spark经典案例分享

Spark经典案例,链接操作案例、二次排序案例

pblh123的专栏 1350

计算机毕业设计springboot股票模拟交易系统的设计与实现u6m959【附源码+数据库+部署+LW】

选题背景: 随着互联网和金融科技的快速发展,股票市场成为了吸引人们关注和参与的重要领域之一。越来越多的人开始对股票投资感兴趣,希望通过交易股票来获取收益。然而,对于初学者来说,股票市场的复杂性和风险往往让他们望而却步。因此,设计和实现一个股票模拟交易系统,可以帮助初学者更好地理解和掌握股票交易的规则和技巧,提高他们的投资决策能力。 意义: 股票模拟交易系统的设计与实现具有以下几个重要意义: 提供实践机会:股票模拟交易系统为投资者提供了一个实践的平台,使他们能够在真实市场环境下进行模拟交易,了解股票市场的

gp12081的博客 1760

spark笔记RDD典型案例(3.8)

简单的RDD案例,利用RDD计算总分与平均分 利用RDD统计每日新增用户 利用RDD实现分组排行榜

forget_wt的博客 506

使用cubeMX生成USB HID设备

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

专注音频,高效工作,快乐生活! 970

探索Three.js:利用ShaderMaterial实现动态着色器特效

本文深入探讨了Three.js中ShaderMaterial的应用,指导开发者利用GLSL编写自定义着色器实现动态特效。文章从核心概念GLSL、Uniforms与Attributes讲起,通过创建动态颜色变化平面的实战案例,逐步进阶到实现波纹扩散与动态光影等高级效果,并提供了性能优化与调试技巧,帮助读者掌握创建高性能WebGL视觉特效的关键技能。

weixin_29250403的博客 201

spark相关案例

1、使用IDEA基于java语言开发spark的wordcount程序 1.1、创建maven工程,引入依赖 <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.3.3</vers...

fengge18306的博客 2178

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3145

Spark经典案例之求平均值

1、需求分析 对输入文件中数据进行就算学生平均成绩。输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件。 要求在输出中每行有两个间隔的数据,其中,第一个代表学生的姓名,第二个代表其平均成绩。 2、原始数据 1)math: 张三,88 李四,99 王五,66 赵六,77 2)china: 张三,78 李四,89 王五,96 赵六,67 3)english...

zhangMY12138的博客 3802

pytest学习和使用19-pytest断言失败后,怎样保持后续的断言继续执行?(pytest-assume)

【代码】pytest学习和使用19-pytes断言失败后,怎样保持后续的断言继续执行?

虫无涯的博客 1390

YOLOv8【项目实战四】遥感图像目标检测:应对特殊场景的挑战,如何处理遥感图像通常具有的大尺寸、多尺度、方向多变等特点,并对 YOLOv8 进行相应调整(含源码)

遥感图像目标检测优化策略 核心挑战 图像尺寸大:遥感图像通常达数万像素,直接缩放导致小目标丢失 多尺度目标:同一图像包含几十像素的小目标和跨图像的大目标 方向多样性:目标360度任意旋转,水平框检测效果差 优化解决方案 滑动窗口分块处理: 采用1024x1024窗口大小 设置20%-30%重叠率防止边界漏检 全局坐标转换实现检测结果拼接 多尺度特征融合: 改进FPN结构增强小目标检测 自适应感受野处理不同尺寸目标 上下文信息聚合提升检测精度 旋转目标检测: 引入旋转边界框表示 角度预测分支增强方向感知 旋转

深耕 Vue 生态与 JS/TS 技术,聚焦组件封装、响应式原理、TS 类型设计,解析工程化配置与性能优化方案。同时分享 YOLOv8 目标检测实战、AI 大模型面试核心考点,以代码实例拆解技术实现与业务解法。 618

java spark 求平均值_Spark经典案例之求平均值

1、需求分析对输入文件中数据进行就算学生平均成绩。输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件。要求在输出中每行有两个间隔的数据,其中,第一个代表学生的姓名,第二个代表其平均成绩。2、原始数据1)math:张三,88李四,99王五,66赵六,772)china:张三,78李四,89王五,96赵六,673)english:张三,80李四,82王五,84赵...

weixin_39620001的博客 978

SO_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、保活包

是一个套接字选项,用于设置是否启用 keepalive 机制。在这段代码中没有涉及到选项的设置。当被设置为非零值时,表示启用 keepalive 机制。keepalive 是一种用于检测连接是否仍然有效的机制。通过定期发送一些特定的探测数据,可以检测到网络连接的异常中断或对端应用程序的崩溃退出。为了避免以上情况,可以启用 keepalive 机制,即使在无数据传输的情况下也定期发送探测数据。如果在一定时间内没有收到对端的响应,就认为连接已经失效,并进行相应的处理。要启用选项,需要使用函数。其中,fd。

m0_46376834的博客 4816

java spark 求平均值_6.Spark Core-Spark经典案例之求平均值

1、需求分析对输入文件中数据进行就算学生平均成绩。输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件。要求在输出中每行有两个间隔的数据,其中,第一个代表学生的姓名,第二个代表其平均成绩。2、原始数据1)math:张三,88李四,99王五,66赵六,772)china:张三,78李四,89王五,96赵六,673)english:张三,80李四,82王五,84赵...

weixin_31834275的博客 328

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

AUC计算原理与实现:从梯形积分到Spark分布式优化

在机器学习模型评估中,分类器性能的衡量是关键环节。准确率、精确率、召回率等指标依赖于分类阈值,而ROC曲线及其下方的面积AUC则提供了一种与阈值无关的整体评估方法。AUC的核心原理是衡量模型将正样本排在负样本前面的能力,其值域在0.5到1之间,数值越高代表模型区分能力越强。从技术实现看,AUC的计算主要有几何逼近和概率统计两种路径:梯形积分法直接对ROC曲线进行数值积分,符合直观理解;Wilcoxon-Mann-Whitney统计量法则基于“随机正样本得分高于随机负样本得分”的概率解释,通过排序和秩计算高效

weixin_33802505的博客 279

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

KNN真的死了吗?从工程落地看算法的退场与升维

KNN(K-近邻算法)作为机器学习中最基础的实例学习方法,其核心原理是基于距离度量实现局部相似性决策。在高维灾难、实时推理瓶颈与内存约束加剧的现代系统中,传统暴力遍历式KNN确已难以满足低延迟、大规模、多模态等工程需求;但它的思想内核——‘邻居即证据、距离即关系’——正通过向量检索(如FAISS)、双塔推荐、kNN-LM等技术被深度继承与重构。它不再以原始形态主导线上服务,却在冷启动、嵌入式AI、医疗可解释诊断等强调白盒性、确定性与小样本鲁棒性的场景中不可替代。理解KNN的边界与演化,本质是理解算法工程化中

weixin_30239339的博客 341

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LLM Judge实战:评估求职搜索排序质量与Prompt设计

在搜索排序与推荐系统中,如何准确评估排序结果质量一直是工程难题。传统离线指标如NDCG、MRR依赖人工标注,成本高且长尾Query覆盖不足,而大语言模型(LLM)的出现为排序评估提供了新思路——通过将LLM作为评测者(LLM judge),利用统一的Prompt标准对候选结果进行相关性打分或Pairwise比较,既能降低人工成本,又能提升评估一致性。本文从搜索排序评估的基本概念切入,结合Pointwise打分与Pairwise对比两种典型范式,讲解如何设计高质量的评估Prompt,并给出基于Python的工

weixin_28235513的博客 349

spark常用RDD算子 - Reduce(),fold()

reduce(fun) 算子: 每次传入两个参数通过fun 的到一个返回值,该返回值继续与后面的值进行调用fun,直到所有的数据计算完成,最后返回一个计算结果 reduce算子代码示例 List<Integer> number = Arrays.asList(3,2,5,4,7); JavaRDD<Integer> numRDD = javaSparkContext.parallelize(number); //比如这里的函数,每两个元素相加 int reuslt = numR

小哇 1948

Spark数据处理实例

词频统计案例1.需求分析这个文件的数据是非结构化的,每行的单词个数是不固定的,也没有具体的含义。为了使用Spark SQL来处理它,第1步工作就是要将这个文件的数据转换成结构化的形式,由于我们真正关注的是各个单词,因此可以像以往那样将文件数据转换为RDD,然后经过一定的处理后将其转变为DataFrame,这样就可以由SparkSQL来处理2.SparkSQL编程实现首先将文件数据转换为rdd1,由于它是非结构化的数据,因此同样需要把每行包含的单词切解出来。

Gx_2647664843的博客 688

spark案例:Top10 热门品类

数据格式: 数据文件中每行数据采用下划线分隔数据 每一行数据表示用户的一次行为,这个行为只能是 4 种行为的一种 如果搜索关键字为 null,表示数据不是搜索数据 如果点击的品类 ID 和产品 ID 为-1,表示数据不是点击数据 针对于下单行为,一次可以下单多个商品,所以品类 ID 和产品 ID 可以是多个,id 之 间采用逗号分隔,如果本次不是下单行为,则数据采用 null 表示 支付行为和下单行为类似 需求:按照每个品类的点击、下单、支付的量来统计热门品类(先按照点击数排名,靠前的就.

csncd的博客 2932
上一篇: Spark经典案例3-数据排序
下一篇: Spark经典案例5-求最大最小值
yjgithub
博客等级 码龄11年 53粉丝 105原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值