Spark计算用户发推文的次数

时间:2017-12-05 00:03:32

标签: python apache-spark pyspark

我必须计算用户发推文的次数,数据在JSON文件中。我尝试了groupByKeyreduceByKey,但输出是用户ID和推文本身,而不是推文的数量。

代码:

from pyspark import SparkContext
from pyspark.sql import SQLContext

sc = SparkContext("local", "Twitter")
sqlc = SQLContext(sc)


df = sqlc.read.json("file.json")
tweets = df.select("user.id","text")
users = tweets.rdd.reduceByKey(lambda x,y:x+y)

如何将各自用户的推文计数作为密钥?

2 个答案:

答案 0 :(得分:1)

您只需要:

df.groupBy("user.id").count()

此:

tweets.rdd.reduceByKey(lambda x,y:x+y)

只添加第二个元素(可能str连接结果)。

答案 1 :(得分:0)

实际上我找到了解决方法。希望这有助于某人。

users = tweets.rdd.groupByKey().mapValues(len)