Java lambda 简化JavaSpark Core代码
2019-06-04 19:04
886 查看
直接上个写得很烂的小代码片段,慢慢体会。。。
SparkSession spark = SparkSession.builder() .master("local[*]") .appName("xxx") .config("spark.mongodb.input.uri", "mongodb://xx.xx.xx.xx/xx.xx") .getOrCreate(); spark.sparkContext().setLogLevel("WARN"); JavaSparkContext sc = new JavaSparkContext(spark.sparkContext()); JavaMongoRDD<Document> mongoRDD = MongoSpark.load(sc); //将数据压平 JavaRDD<Document> dataRDD = mongoRDD.flatMap(document -> { List<Document> doc = (List<Document>) document.get("data"); return doc.iterator(); }); //过滤_id 为空的数据 JavaRDD<Tuple2> tupleRDD = dataRDD.filter(document -> document.get("_id") != null && ((List<String>) document.get("car")).size() > 0) .map(document -> { String str = ((List<String>) document.get("car")).get(0); return new Tuple2(document.get("_id"), str); }); //根据_id分组 聚合 JavaPairRDD<Object, Set<String>> tupleArrRDD = tupleRDD.groupBy(tuple2 -> tuple2._1).mapValues(arr -> { Set<String> set = new HashSet(); for (Tuple2 tuple : arr) { set.add((String) tuple._2); } return set; }); //分区内部进行 jdbc操作数据库 List nullResult = tupleArrRDD.mapPartitions(tuple2Iterator -> {......}); ..... spark.srop
相关文章推荐
- Java:用Lambda表达式简化代码一例
- java下载压缩包简化代码
- 使用Java注解来简化你的代码
- 小试Lombok,简化Java代码
- JAVA奇技淫巧简化代码之lombok
- Lombok 简化java代码注解
- jdt.core.formatter.CodeFormatter格式化java代码
- Java 代码简化系列 (一)
- java REST入门:使用 JAX-RS 简化 REST 应用开发(转自代码商人)
- [编写高质量代码:改善java程序的151个建议]建议34:构造函数尽量简化
- 简化你的Java代码,让工作更高效|语言
- (十五)Core Java Eclipse的使用(快捷配置,模板代码.静态导入,自动拆装箱,享元设计模式) (112)
- JAVA奇技淫巧简化代码之lombok
- Lombok简化Java代码 - Code less do More
- Lombok 简化java代码注解
- 使用反射简化ajax中的处理代码(Java版)
- UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现
- 如何用 Lombok 简化 Java 代码
- Lombok 简化java代码注解
- Spark代码调试遇到的错误Caused by: java.net.URISyntaxException: Relative path in absolute URI: file: