我已导入文本文件,其中包含以下值名称,年龄,资格,性别,薪水等多行到JavaRDD<String>
我如何计算男性和女性的数量?
我应该将列性发送到另一个JavaRDD<String>
,还是可以应用JavaPairRDD<String,Integer>
?
不使用数据帧
我试过这个
JavaRDD<String> getdata = sc.textfile("gettext.data");
JavaPairRdd<String,Integer> pairgroup = getdata.mapToPair(new PairFunction<String, String, Integer>() {
@Override
public Tuple2<String, Integer> call(String arg0) throws Exception {
String[] aRow= arg0.toString().split(",");
String Sex = aRow[3];
return new Tuple2<String, Integer>(Sex, 1);
}
}).reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override
public Integer call(Integer v1, Integer v2) throws Exception {
return v1 + v2;
}
}).foreach(new VoidFunction<Tuple2<String, Integer>>() {
@Override
public void call(Tuple2<String, Integer> t) throws Exception {
System.out.println(t._1 + " " + t._2);
}
});