Spark(1)-wordCount入门

1. 创建Maven项目

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.wakedata</groupId><artifactId>code</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><encoding>UTF-8</encoding><spark.version>3.4.1</spark.version><scala.version>2.12.14</scala.version></properties><dependencies><!-- scala依赖       --><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala.version}</version></dependency><!-- spark core 即为spark内核 ,其他⾼级组件都要依赖spark core       --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>${spark.version}</version></dependency></dependencies><build><!--scala待编译的文件目录--><sourceDirectory>src/main/scala</sourceDirectory><testSourceDirectory>src/test/scala</testSourceDirectory><!--scala插件--><plugins><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.2.2</version><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals><configuration><args><!--<arg>-make:transitive</arg>--><!--scala2.11 netbean不支持这个参数--><arg>-dependencyfile</arg><arg>${project.build.directory}/.scala_dependencies</arg></args></configuration></execution></executions></plugin><!--manven打包插件--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.3</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>reference.conf</resource></transformer><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>cn.itcast.rpc.Master</mainClass> <!--main方法--></transformer></transformers></configuration></execution></executions></plugin></plugins></build></project>

2.目录结构

3. 代码实现

package sparkCoreimport org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}/**** 1. 创建SparkContext* 2. 创建RDD* 3. 调用RDD的Transformation算子* 4. 调用Action* 5. 释放资源*/object wordcount_01 {def main(args: Array[String]): Unit = {val conf:SparkConf = new SparkConf().setAppName("WordCount").setMaster("local")//创建SparkContext,使⽤SparkContext来创建RDDval sc: SparkContext = new SparkContext(conf)//spark写Spark程序,就是对抽象的神奇的⼤集合【RDD】编程,调⽤它⾼度封装的API //使⽤SparkContext创建RDDval lines: RDD[String] = sc.textFile("./data/words.txt")//切分压平val words: RDD[String] = lines.flatMap(_.split(" "))将单词和⼀组合放在元组中val wordsAndOne: RDD[(String, Int)] = words.map((_, 1))//分组聚合,reduceByKey可以先局部聚合再全局聚合val reduced: RDD[(String, Int)] = wordsAndOne.reduceByKey(_ + _)//排序val sorted: RDD[(String, Int)] = reduced.sortBy(_._2, false)//打印结果sorted.foreach(line => print(line))//释放资源sc.stop()}}

运行结果: 

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

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

相关文章

JavaScript继承 寄生组合式继承 extends

JavaScript继承 1、JS 的继承到底有多少种实现方式呢? 2、ES6 的 extends 关键字是用哪种继承方式实现的呢? 继承种类 原型链继承 function Parent1() {this.name parentlthis.play [1, 2, 3] }function Child1() {this.type child2 }Child1.prototype new Parent1(…

三天学会阿里分布式事务框架Seata-seata事务日志mysql持久化配置

锋哥原创的分布式事务框架Seata视频教程&#xff1a; 实战阿里分布式事务框架Seata视频教程&#xff08;无废话&#xff0c;通俗易懂版&#xff09;_哔哩哔哩_bilibili实战阿里分布式事务框架Seata视频教程&#xff08;无废话&#xff0c;通俗易懂版&#xff09;共计10条视频&…

navicat16

Navicat16: 链接: https://pan.baidu.com/s/1vIfX0qEEL4mhBrsEzD_-lw?pwdy3fi 提取码: y3fi 破解教程视频&#xff1a;2023年Navicat16破解教程(小白教程)_哔哩哔哩_bilibili

1、云原生安全之K8S的部署与常用命令

文章目录 1、常用命令1.1、基本信息查看1.2、日志查看与问题排查1.3、进入pod与pod内部文件导出1.4、环境搭建相关1.5、镜像相关1.6、电脑重启后,重启k8s服务1.7、关于k8s的持久卷二、k8s的部署2.1、配置环境2.1.1、安装所需工具2.1.2、修改主机名2.1.3、编辑hosts2.1.4、其他…

第13集《灵峰宗论导读》

《灵峰宗论》导读。诸位法师&#xff0c;诸位同学&#xff0c;阿弥陀佛&#xff01;&#xff08;阿弥陀佛&#xff01;&#xff09; 请大家打开讲义第38面。 丙三、结示 这一科是《正见篇》的结示。《正见篇》主要的是要引导我们能够正确地观察生命的真相。生命的真相就是说…

【RISC-V 指令集】RISC-V DSP 扩展指令集介绍(二)

前言&#xff1a; 本笔记是基于对RISC-V DSP扩展指令集文档总结的&#xff0c;《P-ext-proposal.pdf》文档的关键内容如下&#xff1a; 主要介绍了RISC-V的P扩展指令集及其相关细节。 首先&#xff0c;对P扩展指令进行了概述&#xff0c;并列出了其与其他扩展重复的指令。 …

Java 的notify 可能导致死锁原因详解

假设有一个共享资源库 ResourcePool&#xff0c;它内部维护了两类资源&#xff1a;ResourceTypeA 和 ResourceTypeB。现在有两个线程 Thread1 和 Thread2&#xff0c;它们都需要从资源库中分别获取一种资源才能继续执行。Thread1 需要 ResourceTypeA 而 Thread2 需要 ResourceT…

上位机图像处理和嵌入式模块部署(当前机器视觉新形态)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 过去的机器视觉处理&#xff0c;大部分都是集中在上位机、或者是服务器领域&#xff0c;这种形式维持了很长的时间。这种业务形态下&#xff0c;无…

windows 11 蓝牙突然消失

解决方法&#xff1a; 1.WinX&#xff0c;点击设备管理器 2.选中蓝牙&#xff0c;右键更新驱动。 3.然后就可以出现了&#xff0c;如下图

Django多个app配置多个域名访问

环境&#xff1a;Python 3.8.1 Django 2.2.12 项目目录结构&#xff1a; CellMiddle -- 项目根目录 ├─task --- 需求系统 │ ├─migrations │ ├─static │ └─templates ├─logs --- 日志目录 ├─doc --- 文档系统 │ ├─data │ ├─migrations │ ├─st…

程序员是如何看待“祖传代码”的?

目录 ​编辑 程序员是如何看待“祖传代码”的&#xff1f; 一、什么是“祖传代码”&#xff1f; 二、“祖传代码”的利弊 1. 可以节省开发成本 2. 可能引入安全隐患 3. 可能增加系统的维护难度 三、祖传代对程序员的影响 1. 丰富程序员的技能和知识 2. 提高程序员的创…

python笔记_进制

二进制 进位规则&#xff1a;满2进1 范围&#xff1a;0,1 符号&#xff1a;以0b和0B开头 八进制 进位规则&#xff1a;满8进1 范围&#xff1a;0-7 符号&#xff1a;以0o和0O开头 十进制 进位规则&#xff1a;满10进1 范围&#xff1a;0-9 十六进制 进位规则&#xff…

Python——Tchisla求解器(暴力搜索法)

Tchisla简介 最近玩到一个挺有意思的数字解密小游戏《Tchisla》&#xff0c;其规则类似算24点&#xff0c;也是利用一些数学运算和初始数字计算出目标数字&#xff0c;与算24点不同的是&#xff0c;Tchisla允许不限次数地使用一种初始数字&#xff08;1~9&#xff09;&#xf…

【VSCODE修改代码行间距】解决方案

在我们编码的过程中&#xff0c;由于显示字体和显示器的不同&#xff0c;会需要调整行间距&#xff0c;在vscode默认的选项中没有看到设定行间距的选项&#xff0c;不过&#xff0c;可以手动修改配置档达到目的。 1.打开设置 2.打开配置档&#xff0c;手动进行设定 3.在选项中添…

第七十二天 漏洞发现-Web框架中间件联动GobyAfrogXrayAwvsVulmap

第72天 漏洞发现-Web框架中间件&联动&Goby&Afrog&Xray&Awvs&Vulmap 知识点&#xff1a; 1、Bup简单介绍&使用说明 2、Xray简单介绍&使用说明 3、AWWS简单介绍&使用说明 4、Goby简单介绍&使用说明 5、Afrog简单介绍&使用说明 6、…

带你玩转java封装和继承(上)

上次带大家学习了java里面比较重要的知识点类和对象&#xff0c;而且我们知道java是一门面向对象的语言&#xff0c;有时一个程序里可能有很多类&#xff0c;那么这么多类他们之间有什么联系吗&#xff1f;今天就带大家学习一下java类之间的关系。 什么是继承&#xff1a; 我们…

Linux信号【systemV】

目录 前言 正文&#xff1a; 1消息队列 1.1什么是消息队列&#xff1f; 1.2消息队列的数据结构 1.3消息队列的相关接口 1.3.1创建 1.3.2释放 1.3.3发送 1.3.4接收 1.4消息队列补充 2.信号量 2.1什么是信号量 2.2互斥相关概念 2.3信号量的数据结构 2.4…

lambda表达式 —— 过滤再排序未生效问题排查

背景 项目中有个场景&#xff0c;需要将一个列表先按要求过滤&#xff0c;再根据某字段排序。图方便使用lambda表达式修改原列表将过滤和排序逻辑写到一行&#xff0c;打印输出列表发现过滤未生效。 代码示例&#xff1a; List<Long> productIdList Arrays.asList(1L);…

向爬虫而生---Redis 探究篇4<Redis主从复制(1)>

前言: 当涉及到Redis的高可用性和数据冗余时&#xff0c;主从复制是一个非常重要的概念。 在现代应用程序的开发中&#xff0c;数据的可靠性和高可用性是至关重要的。当涉及到数据冗余和故障恢复时&#xff0c;Redis主从复制成为一个必不可少的工具和技术。Redis主从复制是一…

蓝桥杯-单片机组基础5——外部中断与LED的控制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…