+---------+------------------+
| Month|sum(buss_days)|
+---------+------------------+
| April| 83.93|
| August| 94.895|
| December| 53.47|
| February| 22.90|
| January| 97.45|
| July| 95.681|
| June| 23.371|
| March| 35.957|
| May| 4.24|
| November| 1.56|
| October| 1.00|
|September| 93.51|
+---------+------------------+
我想要这样的输出
+ ------------- + ------------------ + |月|总和(avg_buss_days)| + --------- + ------------------ + |一月| 97.45 二月| 22.90 三月| 35.957 四月| 83.93 | |可能| 4.24 六月| 23.371 七月| 95.681 八月| 94.895 | |九月| 93.51 十月| 1.00 11月| 1.56 十二月| 53.47 | + --------- + ------------------ +
这就是我所做的 df.groupBy(“ Month [order(match(month $ month,month.abb)),]”) 而我得到了..... 线程“主要” org.apache.spark.sql.AnalysisException中的异常:无法解析列名称“ Month [order(match(month(month $ month,month.abb)),]”。这里的月份是数据框中的列名称
答案 0 :(得分:2)
将“月份转换为日期”表单进行转换,并对项目应进行的排序。
请找到代码段unix_timestamp(col("Month"),"MMMMM")
Df.sort(unix_timestamp(col("Month"),"MMMMM")).show
+---------+-------------+
| Month|avg_buss_days|
+---------+-------------+
| January| 97.45|
| February| 22.90|
| March| 35.957|
| April| 83.93|
| May| 4.24|
| June| 23.371|
| July| 95.681|
| August| 94.895|
|September| 93.51|
| October| 1.00|
| November| 1.56|
| December| 53.47|
+---------+-------------+