【问题标题】:counter occurences to obtain a weight per user. (pyspark)计算出现次数以获得每个用户的权重。 (pyspark)
【发布时间】:2021-04-20 08:19:38
【问题描述】:

我是 Spark 的新手。 我正在尝试建立一个推荐系统,为了获得隐式权重,我想计算用户订购产品的次数。我正在为此苦苦挣扎。

我有一张包含 user_id、product_id 和 weight 的表。这些 id 不是唯一的,我想计算 user_id 订购 product_id 的次数。

例如

来自:

USER_ID、PRODUCT_ID、WEIGHT

5、196、1

5、196、1

99623, 196, 1

99623, 196, 1

99623, 196, 1

99623, 200, 1

到:

USER_ID、PRODUCT_ID、WEIGHT

5、196、2

99623、196、3

99623, 200, 1

(我正在使用 pyspark)

这是我的数据框的屏幕截图 dataframe

【问题讨论】:

  • 欢迎来到 SO,而不是屏幕截图,请考虑将您的实际代码粘贴到问题中。它会显示你的努力和你已经尝试过的东西。这将使发现问题更容易。尝试瞄准stackoverflow.com/help/minimal-reproducible-example。祝你好运!

标签: python dataframe apache-spark pyspark merge


【解决方案1】:

你可以分组和求和:

import pyspark.sql.functions as F

df2 = df.groupBy('USER_ID', 'PRODUCT_ID').agg(F.sum('WEIGHT').alias('WEIGHT'))

如果您只想计算项目,请使用F.count 而不是F.sum

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2021-01-14
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多