概述
transform:
- 每一批次调用一次
- 如下代码介绍的那样,foreachRDD内部最开始一部分是运行在Driver中,可以做一些连接之类的工作
foreachRDD
什么时候用foreachRDD,什么时候用transform?
- 需要有返回时,就用transform。不需要返回时就用foreachRDD
什么时候用 map,什么时候用 foreach?
- 需要返回时用 map, 不需要返回时用 foreach
val sparkConf: SparkConf = new SparkConf().setAppName("hah").setMaster("local[*]")
val ssc = new StreamingContext(sparkConf, Seconds(3))
val socketDStream: ReceiverInputDStream[String] = ssc.socketTextStream("hadoop001", 9999)
// Coding => Driver (1)
socketDStream.flatMap {
line => {
// Coding => Executor (M)
line.split(" ")
}
}
// Coding => Driver (1)
socketDStream.transform {
rdd => {
// Coding => Driver (N)
rdd.flatMap {
// Coding => Executor (M)
_.split(" ")
}
}
}
// Coding
socketDStream.foreachRDD {
// Coding
rdd => {
rdd.foreach { x => {
// Coding
println(x)
}
}
}
}
最后
以上就是开放小伙为你收集整理的sparkStreaming之transform、foreachRDD的全部内容,希望文章能够帮你解决sparkStreaming之transform、foreachRDD所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复