【发布时间】:2022-11-19 22:59:32
【问题描述】:
我正在寻找如何在 Pyspark 中一起使用 Group by Aggregate Functions 的解决方案? 我的数据框看起来像这样:
df = sc.parallelize([
('23-09-2020', 'CRICKET'),
('25-11-2020', 'CRICKET'),
('13-09-2021', 'FOOTBALL'),
('20-11-2021', 'BASKETBALL'),
('12-12-2021', 'FOOTBALL')]).toDF(['DATE', 'SPORTS_INTERESTED'])
我想在 SPORTS_INTERESTED Column 上应用 group by 并选择 MIN of date From DATE Column 。 以下是我正在使用的查询
from pyspark.sql.functions import min
df=df.groupby('SPORTS_INTERESTED').agg(count('SPORTS_INTERESTED').alias('FIRST_COUNT'),(F.min('DATE').alias('MIN_OF_DATE_COLUMN'))).filter((col('FIRST_COUNT')> 1))
但是当我应用上面的查询时,我不知道为什么它在输出值中给出 MAX 日期而不是 MIN 日期 期望的输出
## +-----------------+-------------------+
## |SPORTS_INTERESTED| MIN_OF_DATE_COLUMN|
## +------+----------+-------------------+
## | CRICKET |23-09-2020 |
## +------+----------+-------------------+
## | FOOTBALL |13-09-2021 |
+-----------------+-------------------+
我得到的输出:
## +-----------------+----------------------+
## |SPORTS_INTERESTED| MIN_OF_DATE_COLUMN|
## +------+----------+-------------------+
## | CRICKET |25-11-2020 |
## +------+----------+-------------------+
## | FOOTBALL |12-12-2021 |
+-----------------+-------------------+
两列都是字符串数据类型
【问题讨论】:
标签: python apache-spark pyspark databricks