import java.io.{File, FileReader}

import java.util

import org.apache.spark.SparkConf

import org.apache.spark.broadcast.Broadcast

import org.apache.spark.sql.SparkSession

import scala.collection.mutable.ArrayBuffer

object SparkTest{

// 使用广播变量过滤 敏感数据

def main(args: Array[String]): Unit = {

val conf = new SparkConf().setMaster("local[2]").setAppName("test")

val spark = SparkSession.builder().config(conf).getOrCreate()

spark.sparkContext.setLogLevel("WARN")

//计算逻辑

compute(spark)

spark.stop()

}

def compute(spark:SparkSession):Unit ={

import spark.implicits._

//加载过敏词汇并存储到 ArrayList 中

val filterDataPath = "G:\\tmp\\b.txt"

val al = new util.ArrayList[String]()

val reader = new java.io.BufferedReader(new FileReader(new File(filterDataPath)))

while (reader.ready()){

val str = reader.readLine()

str.split(" ").foreach(al.add(_))

}

val broadcast: Broadcast[util.ArrayList[String]] = spark.sparkContext.broadcast(al)

spark.sparkContext.textFile("G:\\tmp\\a.txt")

.mapPartitions(ite =>{

// 对源数据进行切割分词,并对每个词进行校验,符合要求的词汇添加到ArrayBuffer中

val arr = ArrayBuffer[String]()

val filterWord:util.ArrayList[String] = broadcast.value

ite.foreach(line => {

line.split(" ").foreach(word => {

if( !filterWord.contains(word) ) arr.+=(word)

})

})

arr.toIterator

})

.collect

.foreach(println)

}

}

spark广播变量的原理_spark使用广播变量相关推荐

  1. Spark广播变量实现原理及基础编程

    Spark广播变量实现原理及基础编程 实现原理 广播变量用来高效分发较大的对象.向所有工作节点发送一个较大的只读值,以供一个或多个 Spark 操作使用.比如,如果你的应用需要向所有节点发送一个较大的 ...

  2. spark java文档中文版_spark api之一:Spark官方文档 - 中文翻译

    1 概述(Overview) 总体来讲,每一个Spark驱动程序应用都由一个驱动程序组成,该驱动程序包含一个由用户编写的main方法,该方法会在集群上并行执行一些列并行计算操作.Spark最重要的一个 ...

  3. 分布式机器学习之——Spark MLlib并行训练原理

    这里是 王喆的机器学习笔记 的第二十五篇文章.接下来的几篇文章希望与大家一同讨论一下机器学习模型的分布式训练的问题.这个问题在推荐.广告.搜索领域尤为突出,因为在互联网场景下,动辄TB甚至PB级的数据 ...

  4. android java广播,[原]Android应用程序发送广播(sendBroadcast)的过程分析

    前面我们分析了Android应用程序注册广播接收器的过程,这个过程只完成了万里长征的第一步,接下来它还要等待ActivityManagerService将广播分发过来.ActivityManagerS ...

  5. 第三章 Spark运行模式及原理

    第三章 Spark运行模式及原理 目录 Spark运行模式概述 Local模式 Standalone模式 Local cluster模式 Mesos模式 YARN standalone/YARN cl ...

  6. 三.非协议栈实现BLE蓝牙广播(2.4G实现BLE广播)

    非协议栈实现BLE广播(2.4G实现BLE广播) 现在的人啊,用协议栈用多了,BLE物理层是怎么广播都不知道了,且听我慢慢道来 这里实现的BLE广播包是基于上一章介绍的,我要通过2.4G来发出这个广播 ...

  7. 第12 课:HA下的Spark集群工作原理解密

    第12 课:HA下的Spark集群工作原理解密 本期内容: 1.Spark高可用HA实战 2. Spark集群工作原理详解 1,Spark高可用HA实战 Spark本身是Master/Slaves结构 ...

  8. Spark 随机森林算法原理、源码分析及案例实战

    图 1. Spark 与其它大数据处理工具的活跃程度比较 回页首 环境要求 操作系统:Linux,本文采用的 Ubuntu 10.04,大家可以根据自己的喜好使用自己擅长的 Linux 发行版 Jav ...

  9. atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js

    atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js 1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释. 1 1.2. 数据库里面的复合变量1 ...

最新文章

  1. Objective-C 自动生成文档工具:appledoc
  2. java中什么是反转_Java中如何将字符串反转
  3. [patl2-018]多项式A除以B
  4. 陕西师范大学计算机科学学院公寓楼,陕西师范大学计算机科学学院简介
  5. Maven 的相关配置【源码下载、镜像源修改】
  6. CyUSB.dll的调用经验介绍
  7. 手机网页转换为html文件,怎么在手机上打开HTML文件
  8. 电商如何“链”动新春,看聚划算助力“原年人”的好日子
  9. linux c语言 utf8读写,关于在C程序中处理UTF-8文本的方法详解
  10. 专访SOSO街景地图:寻找工具性产品突破的机遇
  11. 英语名言警句100句
  12. CentOS 7 安装 Weadmin(ITOSS)
  13. 第二关练习讲解(下部)
  14. 2023跨境出海指南:马来西亚网红营销白皮书
  15. 乐1s 乐视X501_官方线刷包_救砖包_解账户锁
  16. 使用gltf-pipeline转换gltf、glb模型文件
  17. 科技巨头竞速无人车落地:Waymo One 向左,百度Robotaxi向右
  18. 30 个纯 HTML5 实现的游戏
  19. 一本通1375:骑马修栅栏(fence)
  20. chatgpt赋能Python-python_patsy

热门文章

  1. bash脚本编程之for循环
  2. 布兰森:激励是最好的加速器
  3. Java多线程发展简史
  4. 漫画:如何用 K8s 实现 CI/CD 发布流程?
  5. 『图解Java并发』面试必问的CAS原理你会了吗?
  6. 矮个男生不好找对象?某大厂程序员自称太高也难找对象!身高196cm,有房有车,却被嫌太高!...
  7. 数字化转型案例:源自阿里,中台设计流程及方法
  8. 有史以来最会写代码的农民诞生!腾讯元老、上市公司CTO赚够钱后辞职!到安徽农村隐居,亲手建造200亩农场!...
  9. 美团智能问答技术探索与实践
  10. 2020 Java 面试高薪攻略.pdf