0
+---------+------------------+
|    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 十月| 11 月 1 日| 1.56 十二月| 53.47| +---------+------------------+

这就是我所做的 df.groupBy("Month[order(match(month$month, month.abb)), ]") 我得到了这个.....线程“main”org.apache中的异常。 spark.sql.AnalysisException:无法解析列名“Month[order(match(month$month, month.abb)), ]”。这里 Month 是数据框中的列名

4

1 回答 1

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|
+---------+-------------+
于 2019-03-10T11:25:55.703 回答