基本上我有一个csv文件,其中包含具有国家,年份,代码,商品等字段的商业交易,如下所示:
阿富汗尼(Afghanistain); 2016; 010410;现场直播;出口; 6088; 2339;物品数量; 51; 01_live_animals
到目前为止,通过使用JavaPairRDD,在每个条目中使用2个变量一直没有问题。例如,找到哪种商品总重量最高
当我在其中添加第三个变量时,我遇到的麻烦是要把握要做什么。例如,找到按年份分隔的总重量最高的商品。
这是我到目前为止所拥有的:
JavaRDD<String> arquivo = context.textFile("in/Transacoes.csv");
//removes header with field names
file = file.filter(line-> !line.startsWith("country"));
//removes lines where weight field is empty
file = file.filter(line -> !line.split(";")[6].isEmpty());
//generates pairRDD in format (year,(commodity,weight))
JavaPairRDD<String, Tuple2<String,Long>> transaction = arquivo.mapToPair(getYearPair());
所以我目前所拥有的是格式为pairRDD
(年份,包含(商品名称,重量)的元组)
我认为一个简单的reduceByKey可以解决我的问题,但是如果我只是增加重量,它将忽略商品名称。
我想要得到的是每年该商品的总重量。我该怎么办?