【问题标题】:how can i bring the months in calender order like from jan to dec in scala dataframe我如何在scala数据框中按日历顺序排列月份,例如从一月到十二月
【发布时间】:2019-07-31 18:58:50
【问题描述】:
+---------+------------------+
|    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 十一月| 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 是数据框中的列名

【问题讨论】:

  • 如果您提供数据框的结构(目前是月份字符串?)以及到目前为止您尝试了什么,这将更容易回答
  • 嗨,Arnon,感谢您的回复
  • 这是我到目前为止所做的,你能看看我刚刚更新的问题

标签: scala dataframe


【解决方案1】:

将月份转换为日期表格并对项目进行排序。

请找sn-p 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|
+---------+-------------+

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 2021-05-27
    • 1970-01-01
    • 2022-12-22
    • 2021-09-23
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多