Pyspark 使用spark查询对条目进行分组

Pyspark 使用spark查询对条目进行分组,pyspark,group-by,sql-order-by,pyspark-sql,Pyspark,Group By,Sql Order By,Pyspark Sql,我希望对条目进行分组,并希望从以下数据中获得该条目的总计数作为输出: OccDate Mne 19-09-2018 A_sub1_123 19-09-2018 A_sub2_123 19-09-2018 A_sub1_345 15-09-2018 A_sub1_123 15-09-2018 A_sub1_234 16-09-2018 A_sub2_234 期望输出: Date subsm cnt 19-09-2018

我希望对条目进行分组,并希望从以下数据中获得该条目的总计数作为输出:

OccDate     Mne 
19-09-2018  A_sub1_123             
19-09-2018  A_sub2_123
19-09-2018  A_sub1_345
15-09-2018  A_sub1_123
15-09-2018  A_sub1_234
16-09-2018  A_sub2_234
期望输出:

 Date        subsm   cnt
    19-09-2018   sub1    2     
    19-09-2018   sub2    1
    16-09-2018   sub2    1
    15-09-2018   sub1    2
我尝试了以下查询:

RDD = sparkAnalytics.sql("SELECT CONCAT(day(OccDate),'-',month(OccDate),'-',year(OccDate)) AS Date,Mne,Count(Mne) AS cnt FROM fs WHERE Mne LIKE '%%' GROUP BY Date,Mne ORDER BY Date DESC")

但我没有得到所需的输出。

因为您没有在问题中添加错误

我想,您已经在代码中将SparkSession定义为“sparkAnalytics”,而不是“spark”。如果没有,请检查一下


此外,您的查询中还有一个错误,即,您需要编写“按CONCAT(日期(OccDate)、“-”、月(OccDate)、“-”、年(OccDate))分组”,而不是“按日期分组”。

数据框架上尝试此操作

df.groupBy(col("occdate").alias("date"),split(col("mne"),"_")[1].alias("subsm")).agg(count("*").alias("cnt"))