【问题标题】:Grouping entries using spark query使用 spark 查询对条目进行分组
【发布时间】:2020-05-20 23:27:06
【问题描述】:

我想对条目进行分组,并希望将其总数作为以下数据的输出:

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

但我没有得到想要的输出。

【问题讨论】:

    标签: pyspark group-by sql-order-by pyspark-sql


    【解决方案1】:

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

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

    您的查询还有一个错误,即您需要写“group by CONCAT(day(OccDate),'-',month(OccDate),'-',year( OccDate))"

    【讨论】:

      【解决方案2】:

      dataframe上试试这个

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 2014-07-23
        • 1970-01-01
        相关资源
        最近更新 更多