java,spark实现黑名单过滤
2018-03-24 15:03
2041 查看
/** * java,spark实现黑名单过滤 */ public class BlackListFilter { public static void main(String[] args){ SparkConf conf = new SparkConf().setAppName("Simple Application").setMaster("local[2]"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD<String> javaRDD = sc.textFile("F:\\text\\url.txt"); //黑名单 List<Tuple2<String, Boolean>> blackList = Arrays.asList(new Tuple2<String, Boolean>("a", true), new Tuple2<String, Boolean>("b", true), new Tuple2<String, Boolean>("c", true)); //list => JavaPairRDD JavaPairRDD<String, Boolean> blackListRDD = sc.parallelizePairs(blackList); //lines => words => (word, 1) JavaPairRDD<String, Integer> wordsAndCount = javaRDD .flatMap(new FlatMapFunction<String, String>() { @Override public Iterator<String> call(String s) throws Exception { return Arrays.asList(s.split("\\s+")).iterator(); } }).mapToPair(new PairFunction<String, String, Integer>() { @Override public Tuple2<String, Integer> call(String s) throws Exception { return new Tuple2<String, Integer>(s, 1); } }); //(word, 1) leftOutJoin (word, true) => (word, (1, Option)) JavaPairRDD<String, Tuple2<Integer, Optional<Boolean>>> leftOuterJoin = wordsAndCount.leftOuterJoin(blackListRDD); //(word, (1, Option)) => filter => (word, (1, option = false)) => map => word JavaRDD<String> whiteList = leftOuterJoin.filter(new Function<Tuple2<String, Tuple2<Integer, Optional<Boolean>>>, Boolean>() { @Override public Boolean call(Tuple2<String, Tuple2<Integer, Optional<Boolean>>> t) throws Exception { return t._2._2.orElse(false) ? false : true; } }).map(new Function<Tuple2<String, Tuple2<Integer, Optional<Boolean>>>, String>() { @Override public String call(Tuple2<String, Tuple2<Integer, Optional<Boolean>>> t) throws Exception { return t._1; } }); System.out.println(whiteList.collect()); } }
相关文章推荐
- scala程序写Spark程序实现黑名单过滤
- 第94课:SparkStreaming 实现广告计费系统中在线黑名单过滤实战
- 第108讲: Spark Streaming电商广告点击综合案例动态黑名单过滤真正的实现代码
- 大数据IMF传奇行动绝密课程第94课:SparkStreaming实现广告计费系统中在线黑名单过滤实战
- 第106课: Spark Streaming电商广告点击综合案例黑名单过滤实现
- 第106讲: Spark Streaming电商广告点击综合案例黑名单过滤实现
- 大数据IMF传奇行动绝密课程第103课:动手实战Spark Streaming Broadcast、Accumulator实现在线黑名单过滤和计数
- 第94讲, 使用Scala开发集群运行的Spark 实现在线黑名单过滤程序
- 第108课: Spark Streaming电商广告点击综合案例动态黑名单过滤真正的实现代码
- Spark 实现黑名单实时过滤
- SparkStreaming 实现广告计费系统中在线黑名单过滤实战
- transform实现广告计费日志实时黑名单过滤(Java版本)
- java实现压缩字符串和java字符串过滤
- Java实现敏感词过滤实例
- Apriori算法在spark上的java实现
- Java实现文本文件按条件过滤的简便方法
- java敏感词过滤-使用HashMap实现DFA算法
- Java实现敏感词过滤
- Java实现的文件过滤代码分享(按后辍过滤)
- Java实现敏感词过滤