一、思路
1、获取黑名单数据,处理成RDD形式
一般情况,黑名单数据存储在数据库里面,获取之后将每个黑名单数据处理成(blackName,true)的Tuple形式;
2、接收数据,处理成(k,v)形式
从数据源接收到数据之后,取出name作为key,整条数据作为value,譬如:输入数据为"20190929 zhangsan 18",那么处理后为(zhangsan, 20190929 zhangsan 18)
3、根据name作leftOuterJoin操作
4、判断join操作后,根据boolean值进行filter操作
二、代码
package com.cjs
import org.apache.log4j.{Level, Logger}
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
object OnlineBlackListFilter {
def main(args: Array[String]): Unit = {
Logger.getLogger("org.apache.spark").setLevel(Level.ERROR)
val conf = new SparkConf()
.setAppName("OnlineBlackListFilter")
.setMaster("local[2]")
val ssc = new StreamingContext(conf,Seconds(6))
//