大数据课程K3——Spark的常用案例

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 掌握Spark的常用案例——WordCount;

⚪ 掌握Spark的常用案例——求平均值;

⚪ 掌握Spark的常用案例——求最大值和最小值;

⚪ 掌握Spark的常用案例——TopK;

⚪ 掌握Spark的常用案例——二次排序;

一、案例——WordCount

1. 实现步骤

1. 创建spark的项目,在scala中创建项目 导入spark相关的jar包。

2. 开发spark相关代码。

代码示例:

import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

object WordCountDriver {

  def main(args: Array[String]): Unit = {

    val conf=new SparkConf().setMaster("spark://hadoop01:7077").setAppName("wordcount")

    val sc=new SparkContext(conf)

    val data=sc.textFile("hdfs://hadoop01:9000/words.txt", 2)

    val result=data.flatMap { x => x.split(" ") }.map { x => (x,1) }.reduceByKey(_+_)

    result.saveAsTextFile("hdfs://hadoop01:9000/wcresult")

  }

}

3. 将写好的项目打成jar,上传到服务器,进入bin目录。

执行:spark-submit --class cn.tedu.WordCountDriver /home/software/spark/conf/wc.jar

二、案例——求平均值

案例文件:

1 16

2 74

3 51

4 35

5 44

6 95

7 5

8 29

10 60

11 13

12 99

13 7

14 26

正确答案:

42

代码示例一:

import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

object AverageDriver {

  def main(args: Array[String]): Unit = {

    val conf=new SparkConf().setMaster("local").setAppName("AverageDriver")

    val sc=new SparkContext(conf)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流程自动化广泛渗透,盘点RPA高频应用的5大行业

随着工业机器人的广泛应用,机械化的工厂劳动似乎已经逐渐淡出人们的视线。但是这种重复性工作并未消失,反而转移到了办公室中,大量员工忙于处理琐碎且重复的任务,例如数据录入、发票处理和库存管理。然而,随着RPA在各个…

拼多多app商品详情接口 获取pdd商品主图价格销量库存信息

拼多多是中国一家知名的电商平台,以"社交团购新零售"的商业模式闻名,通过手机app和微信小程序等渠道提供商品销售和购物体验。平台上的商品种类丰富多样,涵盖了服装、家居、美妆、食品、数码电子等各个领域。 拼多多的商业模式主要…

【docker】中文无法显示输入等问题解决方法

every blog every motto: You can do more than you think. csdn: https://blog.csdn.net/weixin_39190382?typeblog ID: 胡侃有料 0. 前言 docker 路径中文不显示,无法输入中文问题解决方法 1. 解决方法 1.1 临时解决 打开etc/profile文件,末尾添…

时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化

时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于SWD群体分解的分量可视化,基于群体分解的信号分解技术,MATLAB程序…

修改电脑上路由表使笔记本默认走无线

如果笔记本上即连接了有线,也连接了无线,默认电脑会走有线的,通过route print命令查看路由表就可以看出来,因为无线的“metric”跳数要比有线的高 解决方法: 如果想实现让默认走无线,就需要修改自己电脑的…

npm报错:xxx packages are looking for funding run `npm fund` for details(解决办法)

报错信息:30 packages are looking for funding run npm fund for details 报错原因:这里是开发者捐赠支持的提示,打开一个github的链接之后,会显示是否需要打赏捐赠的信息。 解决方案:这个打赏是资源的,因…

Spring框架提供的工具类

目录 排序工具类 Import导入注解 执行时间工具类 简介 示例 占位符工具类 示例

Redis哨兵模式搭建

Redis哨兵模式搭建 在Redis主从复制这篇文章中我们分析了主从复制的特点,其中一个问题就是主机宕机后需要手动调整,修改从机 为主机,不仅不利于迅速恢复生产场景,还会增加人力成本。哨兵模式的出现是就是为了解决我们主从复制模…

Ubuntu18.04 交叉编译openssl-1.1.1

源码下载地址: openssl 此处使用的是openssl-1.1.1-pre5.tar.gz 解压: $tar -zxvf openssl-1.1.1-pre5.tar.gz $cd openssl-1.1.1-pre5/ 执行配置生成Makefile: $./config no-asm shared --prefix$PWD/__install 或者 $./config no-asm shared no-…

远控木马病毒分析

一、病毒简介 SHA256:880a402919ba4e896f6b4b2595ecb7c06c987b025af73494342584aaa84544a1 MD5:0902b9ff0eae8584921f70d12ae7b391 SHA1:f71b9183e035e7f0039961b0ac750010808ebb01 二、行为分析 同样在我们win7虚拟机中,使用火绒剑进行监控,分析行为…

C++ Day3

目录 一、类 【1】类 【2】应用实例 练习: 【3】封装 二、this指针 【1】this指针的格式 【2】必须使用this指针的场合 三、类中的特殊成员函数 【1】构造函数 i)功能 ii)格式 iii)构造函数的调用时机 iv)…

Golang使用消息队列(RabbitMQ)

最近在使用Golang做了一个网盘项目(类似百度网盘),这个网盘项目有一个功能描述如下:用户会删除一个文件到垃圾回收站,回收站的文件有一个时间期限,比如24h,24h后数据库中记录和oss中文件会被删除…

C语言之扫雷游戏实现篇

目录 主函数test.c 菜单函数 选择循环 扫雷游戏实现分析 整体思路 问题1 问题2 问题3 问题4 游戏函数(函数调用) 创建游戏盘数组mine 创建游戏盘数组show 初始化游戏盘数组InitBoard 展示游戏盘DisplayBoard 游戏盘置雷SetMine 游戏…

设计模式之创建者模式

文章目录 一、介绍二、应用三、案例1. 麦当劳11随心配2. 代码演示3. 演示结果 四、优缺点五、送给读者 一、介绍 建造者模式(Builder Pattern)属于创建型设计模式,很多博客文章的对它的作用解释为用于将复杂对象的创建过程与其细节表示分离。但对于初学者来说&…

VS2022 C++ 批量追加hosts文件IP地址与域名脚本V1.0

这是自己使用VS2022 C++开发的批量追加"C:\Windows\System32\drivers\etc\hosts"文件IP地址与域名的脚本。它可以把cfg.txt文件中例如: 192.168.1.9 test.email 192.168.123.9 doutia.com批量追加到hosts文件 详细源代码如下: AddToHostHosts.cpp //#includ…

Pyqt5打开电脑摄像头进行拍照

目录 1、设计UI界面 2、设计逻辑代码,建立连接显示窗口 3、结果 1、设计UI界面 将ui界面转为py文件后获得的逻辑代码为:(文件名为 Camera.py) # -*- coding: utf-8 -*-# Form implementation generated from reading ui file …

【ES6】—【必备知识】—深拷贝与浅拷贝

一、如何把一个对象复制给另一个对象 1.Object.assign() let target {} let source {a: 1,b: 2 } Object.assign(target,source) console.log(target) // {a: 1, b: 2}2.Object.assign() 只能实现浅拷贝 let target {a: {b:1,c: 8} } let source {a: {b:2} } Object.ass…

无涯教程-PHP - File 函数

文件系统功能用于访问和操纵文件系统&#xff0c;PHP为您提供了操纵文件的所有功能。 运行时配置 这些功能的行为受php.ini中的设置影响。 NameDefaultChangeableChangelogallow_url_fopen"1"PHP_INI_ALLPHP_INI_ALL in PHP < 4.3.4. PHP_INI_SYSTEM in PHP &l…

Linux:如何创建用户

“useradd” 命令用于在 Linux 或类 Unix 系统上创建新用户账户。它是一个需要超级用户权限的命令&#xff0c;因此你需要以 root 或具有 sudo 权限的用户身份运行它。下面是使用 “useradd” 命令创建新用户的基本语法&#xff1a; useradd [选项] 用户名 下面是一些常用选项…

windows上ffmpeg如何录制双屏幕中的一个屏幕上的视频

首先&#xff0c;如何在window上安装ffmpeg自己查找scoop安装ffmpeg. 如题&#xff1a; 如果你有两个屏幕&#xff0c;如何让ffmpeg来录制其中的一个屏幕的视频呢。 很简单&#xff0c;首先你要查看另外一个屏幕的分辨率&#xff1a; 第一步&#xff1a;进入系统中 第二步&am…