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)
假设值是哈希的,你可以使用distinct同countByKey:
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)