请选择 进入手机版 | 继续访问电脑版

sparkStreaming之transform的细节

[复制链接]
舞鴐雲腾 发表于 2020-12-31 20:23:13 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
  1. val socketLineDStream: ReceiverInputDStream[String] = streamingContext.socketTextStream('linux1', 8888)// TODO Driver中执行一次// 比方val a = 1 在Driver中只执行一次// 首先看一下DStream的其他Transformations(转换)操作socketLineDStream.map({    case x => {        // TODO Executor中执行n次(n是Executor数)    }})// 重点来了,看一下DStream的transform转换操作socketLineDStream.transform({    case rdd => {        // TODO Driver中执行m次(m是采集周期数)        rdd.map({            case x => {                //TODO Executor中执行n次(n是Executor数)            }        })    }})
复制代码
注意:


  • transform中的注释处的m就是细节之处,它可以包管此处运行在Driver中的代码可以周期(SparkStreaming的数据采集周期)间变化,即每个数据周期transform走一遍。用处之一是黑名单的更新(好比恶意发帖的用户的更新)
  • 为什么DStream.map内里的代码执行是在Executor?个人明确因为DStream在每个周期(批次)相当于就是一个RDD的封装,所以可以类比RDD.map()内里的代码是运行在Executor端

来源:https://blog.csdn.net/weixin_42307036/article/details/111995954
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )