按键计算不同的值

use*_*622 1 key distinct apache-spark pyspark

我是新手,知道下面的命令.它们按键给出值的计数,按键给出值列表.

dayToHostPairTuple.countByKey()
dayToHostPairTuple.groupByKey()
Run Code Online (Sandbox Code Playgroud)

是否有任何简单的countByKey替代方法,只能按键计算不同的值?

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

下面的代码适合我.它基于我收到的答案.

dayToHostPairTuple = access_logs.map(lambda log: (log.date_time.day, log.host))
dayToHostPairTuple=dayToHostPairTuple.sortByKey()
print dayToHostPairTuple.distinct().countByKey()
Run Code Online (Sandbox Code Playgroud)

zer*_*323 5

假设值是哈希的,你可以使用distinctcountByKey:

dayToHostPairTuple.distinct().countByKey()
Run Code Online (Sandbox Code Playgroud)

或者reduceByKey:

from operator import add

dayToHostPairTuple.distinct().keys().map(lambda x: (x, 1)).reduceByKey(add)
Run Code Online (Sandbox Code Playgroud)