Spark - Comment compter le nombre d'enregistrements par clé

C'est probablement un problème facile, mais, fondamentalement, j'ai un dataset où je suis pour compter le nombre de femelles pour chaque pays. En fin de compte je veux de groupe de chaque décompte par le pays, mais je ne suis pas sûr de ce qu'il faut utiliser pour la valeur, car il n'y a pas un nombre de colonnes dans le jeu de données que je peux utiliser comme valeur dans une groupByKey ou reduceByKey. J'ai pensé à l'aide d'un reduceByKey (), mais qui nécessite une paire clé-valeur et je ne veux compter de la clé et de faire un compteur de la valeur. Comment puis-je aller à ce sujet?

val lines = sc.textFile("/home/cloudera/desktop/file.txt")
val split_lines = lines.map(_.split(","))
val femaleOnly = split_lines.filter(x => x._10 == "Female")

C'est là que je suis bloqué. Le pays est l'indice de 13 dans l'ensemble de données.
La sortie de quelque chose devrait ressembler à ceci:
(Australie, 201000)
(Amérique, 420000)
etc
Toute aide serait super.
Grâce

Est-il une raison pourquoi vous ne voulez pas (temporairement) ajouter de la valeur? Vous pourriez essentiellement faire comme nombre de mots et de faire tous vos KV paires de quelque chose comme <femelle, 1> alors reduceByKey et la somme des valeurs. Ou de faire la touche <[femelle, en australie], 1> alors reduceByKey et de la somme pour obtenir le nombre de femmes dans le pays spécifié. Je ne suis pas sûr de comment faire cela avec scala, mais avec python+spark, c'est très facile.

OriginalL'auteur user2768498 | 2015-06-03