火花和值和计数不同值Java
我的数据集如下所示:
a,b,c,d
---------
1,2005,A,2
1,2005,A,3
1,2005,B,4
2,2005,A,4
输出应按字段a
、b
分组,然后对d
值进行求和,并对不同的c
值进行计数。因此,输出应为:
1,2005,2,9
2,2005,1,4
编辑
我的代码如下:
JavaRDD<String> csv = spark.read().texfile("path.csv").javaRDD();
JavaRDD<String[]> rdd = csv.map(s -> s.split(","))
JavaPairRDD<String , Tuple2<Long, String>> tuple = rdd.mapToPair(x -> new Tuple2<>(x[0]+","+ x[1], new Tuple2<>(x[2], x[3])));
JavaPairRDD<String , Tuple2<Long, String>> tuple2 = tuple.reduceByKey((x,y) -> x._2()+y._2());
但我不知道如何计算不同的c
值
# 1 楼答案
下面的问题加载与您提供的输入类似的CSV
以及所需的映射和减少操作