spark uniq 本质上就是单词计数
粗体部分示例:
# dns_domain_info_list_rdd ==> [(src_ip, domain, domain_ip, timestamp, metadataid), ....] all_domains_list = dns_domain_info_list_rdd.map(lambda x: (x[1], 1)).reduceByKey(operator.add).map(lambda x: x[0]).collect() all_domains_set = set(all_domains_list) domains_with_responsed_ip_list = dns_domain_info_list_rdd.filter(lambda x: x[2]).map(lambda x: (x[1], 1)).reduceByKey(operator.add).map(lambda x: x[0]).collect() domains_with_responsed_ip_set = set(domains_with_responsed_ip_list) print "all domains cnt:", len(all_domains_list) print "all domains sample:", all_domains_list[:3] print "all domains set cnt:", len(all_domains_set) print "all domains(with ip) cnt:", len(domains_with_responsed_ip_list) print "all domains(with ip) sample:", domains_with_responsed_ip_list[:3] print "all domains(with ip) set cnt:", len(domains_with_responsed_ip_set) nx_domains = all_domains_set - domains_with_responsed_ip_set # 针对同一个域名的多次请求,有的有应答,有的没有应答,按有应答处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」