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"))