Вы можете просто создать пару СДР и использовать ее для подсчета по ключам.
Далее предполагается, что СДР в виде строки с записями через запятую:
Map<String, Long> areaCounts =
data.mapToPair(s -> new scala.Tuple2<>(s.split(",")[2], 1L)).countByKey();
И это будетпредоставим вам карту area -> count
.
Если вы предпочитаете реализовывать логику сокращения вручную, вы можете использовать reduceByKey
:
Map<String, Long> areaCounts =
data.mapToPair(s -> new scala.Tuple2<>(s.split(",")[2], 1L))
.reduceByKey((l1, l2) -> l1 + l2).collectAsMap();