Spark,流量統計案例

提前創好一個文件夾分為四個類

FlowBean中的代碼內容為:package org.example.flow;
?
import org.apache.hadoop.io.Writable;
?
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
?
//hadoop 序列化
//三個屬性:手機號,上行流量,下行流量
public class FlowBean implements Writable {
? ? private String phone;
? ? private Long upFlow;
? ? private Long downFlow;
?
? ? public FlowBean(String phone, Long upFlow, Long downFlow) {
? ? ? ? this.phone = phone;
? ? ? ? this.upFlow = upFlow;
? ? ? ? this.downFlow = downFlow;
? ? }
? ? //定義get/set方法
? ? public String getPhone() {
? ? ? ? return phone;
? ? }
? ? public void setPhone(String phone) {
? ? ? ? this.phone = phone;
? ? }
? ? public Long getUpFlow() {
? ? ? ? return upFlow;
? ? }
? ? public void setUpFlow(Long upFlow) {
? ? ? ? this.upFlow = upFlow;
? ? }
? ? public Long getDownFlow() {
? ? ? ? return downFlow;
? ? }
? ? public void setDownFlow(Long downFlow) {
? ? ? ? this.downFlow = downFlow;
? ? }
?
? ? //定義無參結構
? ? public FlowBean() {}
? ? //定義一個獲取總流量的方法
? ? public Long getTotalFlow(){
? ? ? ? return upFlow+downFlow;
? ? }
?
? ? @Override
? ? public void write(DataOutput dataOutput) throws IOException {
? ? ? ? dataOutput.writeUTF(phone);
? ? ? ? dataOutput.writeLong(upFlow);
? ? ? ? dataOutput.writeLong(downFlow);
?
? ? }
?
? ? @Override
? ? public void readFields(DataInput dataInput) throws IOException {
? ? ? ? phone = dataInput.readUTF();
? ? ? ? upFlow = dataInput.readLong();
? ? ? ? downFlow = dataInput.readLong();
?
? ? }
}

FlowDriver中的代碼內容為:

注:此為運行代碼

FlowMapper中的代碼內容為:FlowReducer中的代碼內容為:
————————————————

? ? ? ? ? ? ? ? ? ? ? ? ? ? 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
? ? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/2401_87076452/article/details/147380421

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76832.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76832.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76832.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

下載油管視頻 - yt-dlp

文章目錄 1. yt-dlp與you-get介紹1.1 主要功能對比1.2 使用場景1.3 安裝 2. 基本命令介紹2.1 默認下載視頻2.2 指定畫質和格式規則2.3 下載播放列表2.4 備注 3. 參考資料 之前只使用you-get下載b站視頻,當時了解you-get也可下載油管視頻,但之前無此需求&…

基于javaweb的SSM+Maven教材管理系統設計與實現(源碼+文檔+部署講解)

技術范圍:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

VS2022+QT環境配置及基本操作

參考文章 2025最新!Visual Studio 2022 QT6.7 環境配置全攻略:一鍵搞定安裝與亂碼問題,開發效率翻倍!(全網最詳細教程,手把手教你搭建完美開發環境!)_vs2022 qt-CSDN博客 下載QT …

使用percona-toolkit同步mysql表數據

背景 做了主備mysql的配置以后,可能因為切換過程造成不一致的情況,這個時候可以處理的方式是全量導入再導出,這個有個問題就是操作的數據太多了 我們只需要數據補全同步即可 mysql的同步是基于binlog的,如果沒有記錄的部分的數據…

MDG 實現后端主數據變更后快照自動刷新的相關設置

文章目錄 前言實現過程BGRFC期初配置(可選)設置 MDG快照 BGRFC維護BP出站功能模塊 監控 前言 眾所周知,在MDG變更請求創建的同時,所有reuse模型實體對應的快照snapshot數據都會記錄下來。隨后在CR中,用戶可以修改這些…

重裝系統 之 Dell戴爾服務器 PowerEdge R750xs + window server2012r2 || 2016

因要求需要給新服務器裝個 win server2012或者2016系統 XXX使用U盤制作PE系統U盤安裝系統不行,適合普通win8,win10,win11U盤制作PE系統U盤安裝win10系統教程U盤制作PE系統U盤安裝win10系統教程https://mp.weixin.qq.com/s/t0W8aNJaHPAU8T78nh…

基于Spring Security 6的OAuth2 系列之二十六 - 終章

之所以想寫這一系列,是因為之前工作過程中使用Spring Security OAuth2搭建了網關和授權服務器,但當時基于spring-boot 2.3.x,其默認的Spring Security是5.3.x。之后新項目升級到了spring-boot 3.3.0,結果一看Spring Security也升級…

一鍵配置多用戶VNC遠程桌面:自動化腳本詳解

在當今遠程工作盛行的時代,高效且安全地管理多用戶遠程桌面訪問變得至關重要。本文將介紹一個強大的自動化腳本,該腳本能夠快速創建用戶并配置VNC遠程桌面環境,大大簡化了系統管理員的工作。 一、背景介紹 在Linux系統中,手動配置VNC服務器通常需要執行多個步驟,包括創建…

IOT項目——雙軸追光系統

雙軸太陽能追光系統 - ESP32實現 系統概述 這個系統使用: ESP32開發板2個舵機(水平方向和垂直方向)4個光敏電阻(用于檢測光照方向)適當的電阻(用于光敏電阻分壓) 接線示意圖 --------------…

Maven集成模塊打包使用

文章目錄 1.問題思考(如何對集成模塊進行打包)2.問題解決 (如何對集成模塊進行打包)3.使用者使用該jar包(jar包安裝本地倉庫和使用) 1.問題思考(如何對集成模塊進行打包) 思考:假設有這么一個場…

OpenVINO教程(二):圖片目標檢測推理應用

YOLO模型物體檢測 下面是一個簡單的python程序,他的功能是使用yolo11n模型對coco_bike.jpg照片進行檢測,并顯示檢測結果 代碼步驟如下: coco_bike.jpg照片加載yolo模型使用模型進行detect推理顯示推理結果 下面是完整的代碼 from pathlib import Pathimport urllib.request…

聚類算法(K-means、DBSCAN)

聚類算法 K-means 算法 算法原理 K-means 是一種基于類內距離最小化的劃分式聚類算法,其核心思想是通過迭代優化將數據劃分為 K 個簇。目標函數為最小化平方誤差(SSE): S S E ∑ i 1 K ∑ x ∈ C i ∣ ∣ x ? μ i ∣ ∣ 2…

Oracle在ERP市場擊敗SAP

2024年,甲骨文(Oracle)以87億美元的ERP收入和6.63%的市場份額,首次超越SAP,成為全球最大的ERP應用軟件供應商,結束了SAP自上世紀80年代以來在該領域的長期霸主地位。據APPS RUN THE WORLD的市場調研&#x…

嵌入式面試高頻筆試題目解析

一、基礎概念與 C 語言核心題 1. 指針與內存操作 典型題目: char str[] = "hello"; char *ptr = "world"; str[0] = H; // 合法嗎? ptr[0] = W; // 合法嗎?為什么?解析: str 是棧上數組,可修改內容,str[0]=H 合法。ptr 指向常量字符串區,修改會…

【Python】Selenium切換網頁的標簽頁的寫法(全!!!)

在使用selenium做網站爬取測試的時候,我們經常會遇到一些需要點擊的元素,才能點擊到我們想要進入的頁面, 于是我們就要模擬 不斷地 點點點擊 鼠標的樣子。 這個時候網頁上就會有很多的標簽頁,你的瀏覽器網頁標簽欄 be like: 那…

MySQL GTID模式主從同步配置全指南:從配置到故障轉移

前言 MySQL主從復制是企業級數據庫架構的基礎,而GTID(Global Transaction Identifier)模式則是MySQL 5.6版本后推出的革命性復制技術。本文將詳細介紹如何配置基于GTID的主從同步,并包含實用的故障轉移操作指南。 一、GTID模式核心優勢 相比傳統基于…

MAC系統下完全卸載Android Studio

刪除以下文件 /Applications/Android Studio.app /Users/用戶名/Library/Application Support/Google/AndroidStudio2024.2 /Users/用戶名/Library/Google/AndroidStudio /Users/用戶名/Library/Preferences/com.google.android.studio.plist /Users/用戶名/Library/Cache…

<C#>.NET WebAPI 的 FromBody ,FromForm ,FromServices等詳細解釋

在 .NET 8 Web API 中,[FromBody]、[FromForm]、[FromHeader]、[FromKeyedServices]、[FromQuery]、[FromRoute] 和 [FromServices] 這些都是用于綁定控制器動作方法參數的特性,下面為你詳細解釋這些特性。 1. [FromBody] 作用:從 HTTP 請求…

# 透視 Linux 內核:Socket 機制的底層架構與運行邏輯深度解析

在由 Linux 操作系統構建的龐大網絡生態中,Socket 作為網絡通信的核心樞紐,承載著不同主機間應用進程的數據交互重任。無論是日常的網頁瀏覽、在線游戲,還是復雜的分布式系統通信,Socket 都在幕后扮演著關鍵角色。盡管多數開發者對…

# 利用遷移學習優化食物分類模型:基于ResNet18的實踐

利用遷移學習優化食物分類模型:基于ResNet18的實踐 在深度學習的眾多應用中,圖像分類一直是一個熱門且具有挑戰性的領域。隨著研究的深入,我們發現利用預訓練模型進行遷移學習是一種非常有效的策略,可以顯著提高模型的性能&#…