当前位置:网站首页>Accumulateur Spark et variables de diffusion
Accumulateur Spark et variables de diffusion
2022-06-24 07:00:00 【Angryshark 128.】
Accumulateur
L'accumulateur est un peu similaireRedisCompteur pour,Mais plus puissant que le compteur,Non seulement pour le comptage,Peut également être utilisé pour additionner、Ajouter des éléments de fusion, etc..
Supposons que nous ayons unword.txtTexte,Nous voulons compter les mots dans ce texte“sheep”Nombre de lignes pour,Nous pouvons lire le texte directementfilterFiltrer et compter.
sc.textFile("word.txt").filter(_.contains("sheep")).count()
Supposons que nous voulions compter les mots dans le texte séparément"sheep""wolf"Nombre de lignes pour,Si deux calculs sont nécessaires selon la méthode ci - dessus
sc.textFile("word.txt").filter(_.contains("sheep")).count()
sc.textFile("word.txt").filter(_.contains("wolf")).count()
Si vous comptez séparément100Nombre de lignes de mots,Calculer100Une fois
Si un accumulateur est utilisé,Il suffit de le lire une fois.
val count1=sc.acccumlator(0)
val count2=sc.acccumlator(0)
...
def processLine(line:String):Unit{
if(line.contains("sheep")){
count1+=1
}
if(line.contains("wolf")){
count2+=1
}
...
}
sc.textFile("word.txt").foreach(processLine(_))
Non seulementInt Les types peuvent s'additionner ,Long、Double、Collection On peut aussi cumuler , Vous pouvez également personnaliser , Et cette variable peut être trouvée dans SparkDeWebUIL'interface voit.
Attention!:L'accumulateur ne peut être utilisé qu'àDriver Définition de fin et lecture ,Ça ne peut pas êtreExecutorLecture finale.
Variables de diffusion
Les variables de diffusion permettent de mettre en cache une variable en lecture seule sur chaque machine (worker)Là - haut, Pas toutes les missions (task) Enregistrer une copie de sauvegarde . L'utilisation de variables de diffusion permet d'attribuer plus efficacement une copie d'un ensemble d'entrées volumineuses à chaque noeud .
.Les variables de diffusion améliorent l'efficacité du partage des données de deux façons :
(1)Chaque noeud du cluster(Machines physiques)Une seule copie, La fermeture par défaut est une copie par tâche ;
(2) La diffusion se fait par BT Mise en œuvre du mode de téléchargement ,C'est - à - direP2PTélécharger, Quand il y a beaucoup de grappes , Le taux de transmission des données peut être considérablement augmenté . Après modification des variables de diffusion , Pas de rétroaction vers d'autres noeuds .
val list=sc.parallize(0 to 10)
val brdList=sc.broadcast(list)
sc.textFile("test.txt").filter(brdList.value.contains(_.toInt)).foreach(println)
Lors de l'utilisation,Attention!:
(1)Pour Distribution des petites variables , Pour le mouvement, des dizaines MVariable de, Chaque tâche envoie une fois la mémoire consommée ,Et perdre du temps
(2)Les variables de diffusion ne peuvent être affichées que surdriverDéfinition finale,InExecutorLecture finale,ExecutorImpossible de modifier
边栏推荐
- 展锐芯片之GPU频率
- On BOM and DOM (1): overview of BOM and DOM
- Arduino融资3200万美元,进军企业市场
- Interpreting top-level design of AI robot industry development
- 为什么要用lock 【readonly】object?为什么不要lock(this)?
- On BOM and DOM (3): DOM node operation - element style modification and DOM content addition, deletion, modification and query
- Koa source code analysis
- Asp+access web server reports an error CONN.ASP error 80004005
- Why does the remote end receive a check-out notice when the TRTC applet turns off audio and video locally
- RealNetworks vs. Microsoft: the battle in the early streaming media industry
猜你喜欢
你有一个机会,这里有一个舞台
网吧管理系统与数据库
跳跃游戏II[贪心练习]
Become TD hero, a superhero who changes the world with Technology | invitation from tdengine community
智能视觉组A4纸识别样例
记录--关于virtual studio2017添加报表控件的方法--Reportview控件
MAUI使用Masa blazor组件库
leetcode:84. 柱状图中最大的矩形
RealNetworks vs. 微软:早期流媒体行业之争
[binary number learning] - Introduction to trees
随机推荐
You have a chance, here is a stage
35岁危机?内卷成程序员代名词了
记录--关于virtual studio2017添加报表控件的方法--Reportview控件
雲監控系統 HertzBeat v1.1.0 發布,一條命令開啟監控之旅!
Overview of cloud computing advantages of using cloud computing
Game website making tutorial and correct view of games
How to apply 5g smart pole to smart highway
Typora收费?搭建VS Code MarkDown写作环境
潞晨科技获邀加入NVIDIA初创加速计划
Spirit information development log (1)
Page Jump and database connection of student management system
Do you want to research programming? I got six!
Application of O & M work order
Come on, it's not easy for big factories to do projects!
Koa source code analysis
Interpreting top-level design of AI robot industry development
Source code analysis of current limiting component uber/ratelimit
sql join的使用
The three-year action plan of the Ministry of industry and information technology has been announced, and the security industry has ushered in major development opportunities!
What are the easy-to-use character recognition software? Which are the mobile terminal and PC terminal respectively