【问题标题】:Spark calculate number of times a user has tweetedSpark 计算用户发推文的次数
【发布时间】:2018-01-23 08:46:32
【问题描述】:

我必须计算用户发推文的次数,数据保存在 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)

如何获取各自用户的推文计数作为关键?

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    你只需要:

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

    这个:

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

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

    【讨论】:

      【解决方案2】:

      其实我找到了解决办法。希望这对某人有所帮助。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-28
        • 1970-01-01
        • 2016-08-31
        • 2019-07-08
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        相关资源
        最近更新 更多