当前位置:网站首页>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
边栏推荐
- Produce kubeconfig with permission control
- decade
- Surveying and mapping principle of GIS coordinate system: geoid / datum / reference ellipsoid /epsg/sri/wkt
- The cloud monitoring system hertzbeat V1.1.0 is released, and a command starts the monitoring journey!
- typescript vscode /bin/sh: ts-node: command not found
- leetcode:85. 最大矩形
- leetcode:84. The largest rectangle in the histogram
- Domain name purchase method good domain name selection principle
- On BOM and DOM (3): DOM node operation - element style modification and DOM content addition, deletion, modification and query
- 虚拟文件系统
猜你喜欢
随机推荐
云监控系统 HertzBeat v1.1.0 发布,一条命令开启监控之旅!
Overview of new features in mongodb5.0
智能视觉组A4纸识别样例
Game website making tutorial and correct view of games
I want to say "three no" to digital transformation
What is the main function of cloud disk? How to restore deleted pictures
How long will it take for us to have praise for Shopify's market value of 100 billion yuan?
What is the role of domain name websites? How to query domain name websites
机器人迷雾之算力与智能
开源与创新
oracle sql综合运用 习题
On BOM and DOM (3): DOM node operation - element style modification and DOM content addition, deletion, modification and query
浅谈如何运营好小红书账号:利用好长尾词理论
创客教育给教师发展带来的挑战
基于三维GIS系统的智慧水库管理应用
Go breakpoint continuation
Code scanning | a sharp tool for controlling code quality
[JUC series] completionfuture of executor framework
puzzle(019.1)Hook、Gear
学生管理系统页面跳转及数据库连接


![[JUC series] completionfuture of executor framework](/img/d0/c26c9b85d1c1b0da4f1a6acc6d33e3.png)





