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.pswp.cn/news/714728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714728.shtml
英文地址,請注明出處:http://en.pswp.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…