sparkstreaming使用python實現黑名單過濾

sparkstreaming使用python實現黑名單過濾

場景如下:zs(張三),ls(李四)在黑名單中,ww(王五)不在黑名單中。將zs,ls過濾,得出ww不在黑名單,代碼如下:
from pyspark import SparkContext
from pyspark.streaming import StreamingContext

#黑名單過濾

#sc = SparkContext(master=“local[2]”,appName=“TransformAPP”)
ssc = StreamingContext(sc, 5)

blacks = [‘zs’, ‘ls’]
#列表轉RDD:[(‘zs’, ‘true’), (‘ls’, ‘true’)],true:在黑名單中
blackRDD = sc.parallelize(blacks).map(lambda x: (x, ‘true’))

lines = ssc.socketTextStream(“localhost”, 6789)

#將輸入數據做轉換、過濾
clicklog = lines.map(lambda line: (line.split(",")[1], (line)))
.transform(lambda rdd: rdd.leftOuterJoin(blackRDD))
.filter(lambda x: x[1][1] == None)
.map(lambda a: a[0])

clicklog.pprint()

ssc.start()
ssc.awaitTermination()

首先啓動nc
在這裏插入圖片描述
然後啓動pyspark
在這裏插入圖片描述
將上面的代碼拷貝到命令行測試
在這裏插入圖片描述
輸入測試數據
在這裏插入圖片描述
查看結果,正是我們想要的ww(不在黑名單中)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章