首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花放电中的复杂多重聚集

火花放电中的复杂多重聚集
EN

Stack Overflow用户
提问于 2018-01-30 16:26:44
回答 1查看 322关注 0票数 0

我有一张三栏的桌子:

  • 产品名称
  • 产品用例/使用
  • 用户ID

我想提取每个产品的所有用例。然后,对于每个用例,用户使用该产品的百分比。以下是数据的一个示例:

代码语言:javascript
复制
product-name  use-case     user-ID
A             therapy        X
B             relaxation     X
C             health         Y
A             relaxation     Z
  1. 我想按产品名称分组。
  2. 然后,对于每个产品名称,我想按用例分组。
  3. 然后,对于每个用例(与产品名称相关),我希望看到用户的百分比(即基于他们的用户ID)。我想要的结果是说,xx%的产品A的用户使用此产品是为了放松……

输出应该如下所示:

例如,我可以说,50%的A产品用户正在使用它进行治疗,而其他50%用于放松。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-30 17:19:11

分两个步骤进行聚合,然后加入:

代码语言:javascript
复制
import pyspark.sql.functions as F

(df.groupBy(['product-name', 'Use-case'])
   .count()
   .withColumnRenamed('count', 'User counts')
   .join(
       df.groupBy('product-name').count(), 
       ['product-name']
   ).withColumn('User counts', F.col('User counts')/F.col('count'))
   .drop('count').show())

+------------+----------+-----------+
|product-name|  Use-case|User counts|
+------------+----------+-----------+
|           B|Relaxation|        1.0|
|           C|    health|        1.0|
|           A|   therapy|        0.5|
|           A|relaxation|        0.5|
+------------+----------+-----------+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48526157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档