【问题标题】:Join-Group PySpark - SQL to Pysaprk加入组 PySpark - SQL 到 Pyspark
【发布时间】:2020-12-16 12:40:44
【问题描述】:

我正在尝试使用 pyspark 基于此 SQL 查询连接 2 个表。

%sql
SELECT c.cust_id, avg(b.gender_score) AS pub_masc
FROM df  c
 LEFT JOIN pub_df b 
   ON c.pp = b.pp 
GROUP BY c.cust_id
)

我尝试在 pyspark 中进行跟踪,但我不确定这是否是正确的方式,因为我被困在显示我的数据中。所以我只选择.max

df.select('cust_id', 'pp') \
                .join(pub_df, on = ['pp'], how = 'left')\
                .avg(gender_score) as pub_masc
                .groupBy('cust_id').max()

任何帮助将不胜感激。 提前致谢

【问题讨论】:

    标签: sql apache-spark pyspark group-by aggregate


    【解决方案1】:

    您的 Python 代码包含无效行 .avg(gender_score) as pub_masc。此外,您应该分组然后平均,而不是相反。

    import pyspark.sql.functions as F
    
    df.select('cust_id', 'pp') \
      .join(pub_df, on = ['pp'], how = 'left')\
      .groupBy('cust_id')\
      .agg(F.avg('gender_score').alias('pub_masc'))
    

    【讨论】:

      猜你喜欢
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 2022-09-27
      • 2022-12-10
      • 2021-03-27
      相关资源
      最近更新 更多