1.广播变量的意义
当大数据进行业务处理的时候,所需要的数据存储在HDFS上,但是HDFS上的数据都是一块一块的,如果数据不完整的话就不能进行业务的正常处理,所以需要将数据全部集中起来,去通过广播,让所有进行处理的executors获得全部的数据。
2.下面一张高清大图说明广播的过程,Driver将数据collect到一起,然后将完整的数据分发到executors上,进行相应的处理
3.广播变量的例子
需求:查询日志中每个省所拥有的资源数
import org.apache.log4j.{Level, Logger}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
/**
* 广播变量的例子
* Created by zhangjingcun on 2018/9/27 9:29.
*/
object IPLocation {
val rulesFilePath = "D:\\data\\ip.txt"
val accessFilePath = "D:\\data\\access.log"
def main(args: Array[String]): Unit = {
Logger.getLogger("org.apache.spark").setLevel(Level.OFF)
val conf = new SparkConf().setAppName("IPLocation").setMast