#foreachRDD是Dstream的outPutOperator算子
foreachRDD定义:
def foreachRDD(foreachFunc : org.apache.spark.api.java.function.VoidFunction[R]) : scala.Unit
##foreachRDD作用:
对Dstream中RDD操作
动态改变广播变量值
foreachRDD注意事项:
foreachRDD虽然是outPutOperator算子,但是outPutOperator算子内是对RDD的transformation action操
作,只有RDD的transformation算子,outPutOperator算子是不执行的,要有action触发,outPutOperator
算子才能执行
call 方法内,rdd算子外是driver端执行的,每一个Duration执行一次,适合读取外部知识文件,作为广播
变量,做到动态改变
call 方法内,不能直接使用主方法定义的JavaSparkContext,要重新从RDD中获取
`
JavaSparkContext javaSparkContext = new JavaSparkContext(pairRDD.context());
Broadcast<String> broadcast = javaSparkContext.broadcast("hello");`