Spark-Streaming之transform操作,实时黑名单过滤案例
来源:互联网 发布:linux vi退不出来 编辑:程序博客网 时间:2024/06/05 19:24
Transform操作,应用在DStream上时,可以用于执行任意的RDD到RDD的转换操作。它可以用于实现,DStream API中所没有提供的操作。比如说,DStream API中,并没有提供将一个DStream中的每个batch,与一个特定的RDD进行join的操作。但是我们自己就可以使用transform操作来实现该功能。
DStream.join(),只能join其他DStream。在DStream每个batch的RDD计算出来之后,会去跟其他DStream的RDD进行join。
案例:
object TransformDemo { def main(args: Array[String]): Unit = { Logger.getLogger("org").setLevel(Level.WARN) val config = new SparkConf().setAppName("TransformDemo").setMaster("local[2]") val ssc = new StreamingContext(config, Seconds(2)) //定义黑名单数组 val blackList = Array(("tom", true), ("jim", true)) //黑名单RDD val blackListRDD = ssc.sparkContext.parallelize(blackList) //定义一个socket输入流 ssc.socketTextStream("hadoop01", 8888).map(line => { val fields = line.split(" ") val name = fields(0) val clickDate = fields(1) (name, clickDate) }).transform(rdd => { //进行黑名单过滤,拿到发过来的数据和黑名单数据进行join连接 //(tom,2017-03-02) leftOuterJoin (tom,true) ===> (tom,(2017-03-02,Some(true))) rdd.leftOuterJoin(blackListRDD).filter(tuple => { //过滤掉黑名单里面的数据,isEmpty判断是否为null,如果是null返回true //过滤出这样的数据(jom,(2017-09-09,None)) if (tuple._2._2.isEmpty) true else false }) }).print() ssc.start() ssc.awaitTermination() }}
阅读全文
0 0
- Spark-Streaming之transform操作,实时黑名单过滤案例
- 用spark streaming实现黑名单实时过滤
- 12.transform以及实时黑名单过滤案例实战
- Spark 实现黑名单实时过滤
- 第106课: Spark Streaming电商广告点击综合案例黑名单过滤实现
- 第106讲: Spark Streaming电商广告点击综合案例黑名单过滤实现
- Spark-Spark Streaming-广告点击的在线黑名单过滤
- transform实现广告计费日志实时黑名单过滤(Scala版本)
- 第108课: Spark Streaming电商广告点击综合案例动态黑名单过滤真正的实现代码
- 第108讲: Spark Streaming电商广告点击综合案例动态黑名单过滤真正的实现代码
- Spark之SparkStreaming案例-transform
- Spark(黑名单过滤)
- spark-streaming-[3]-Transform
- transform实现广告计费日志实时黑名单过滤(Java版本)
- Spark Streaming 实战案例(二) Transformation操作
- 动手实战联合使用Spark Streaming、Broadcast、Accumulator计数器实现在线黑名单过滤和计数
- 第109讲: Spark Streaming电商广告点击综合案例动态黑名单基于数据库MySQL的真正操作代码实战
- SparkStreaming之黑名单过滤
- 【脚本语言系列】关于Python基础知识协程,你需要知道的事
- Python中如何进行数据分组
- MobX 在 React Native开发中的应用
- iOS10富文本推送--UNNotificationExtension--基础篇
- 洛谷P1427 小鱼的数字游戏
- Spark-Streaming之transform操作,实时黑名单过滤案例
- 源码等资源下载网站
- PCIe学习笔记(21)--- 中断(2)---MSI
- 运行时异常与非运行时异常的区别
- C++按引用传递参数的问题
- 用logstash导入ES且自定义mapping时踩的坑
- LibreOffice,一个集美貌与才华于一身的软件
- python3之listAndTuple
- 【python】python--helloworld