étincelle de comptage de valeurs distinctes par clé

Je suis un newbie et de savoir-dessous de commandes. Ils donnent le nombre de valeurs clés et une liste de valeurs par clé.

dayToHostPairTuple.countByKey()
dayToHostPairTuple.groupByKey()

est-il une alternative simple à countByKey qui va compter uniquement les valeurs distinctes par clé?

#########################################==

Code ci-dessous fonctionne pour moi. Elle est basée sur les réponses que j'ai reçu.

dayToHostPairTuple = access_logs.map(lambda log: (log.date_time.day, log.host))
dayToHostPairTuple=dayToHostPairTuple.sortByKey()
print dayToHostPairTuple.distinct().countByKey()
  • Je ne suis pas sûr de comprendre ce que vous essayez d'atteindre, mais si je suis correct, vous pouvez le résoudre par la cartographie de votre k,v (k,v), 1 puis reduceByKey sur que, vous allez vous retrouver avec [(k,v), le comte]
  • J'ai fatigué de votre suggestion. Mon code est ci-dessous dayToHostPairTuple = access_logs.map(lambda log: (str(log.date_time.day)+"-"+str(log.host),1)) print dayToHostPairTuple.reduceByKey() Comment dois-je changer mon deuxième ligne?
  • Vous ne voulez pas de les combiner comme une chaîne de caractères que vous souhaitez les combiner comme un python structure de données. Donc, quelque chose comme dayToHostPairTuple.map(lambda k,v: (k,v),1 )
InformationsquelleAutor user2543622 | 2016-02-23