【问题标题】:Can't sort by date correctly无法正确按日期排序
【发布时间】:2019-11-08 17:02:05
【问题描述】:

不是按天排序,而是按月排序。

我试过str_to_date,但在spark sql中没有,并尝试在order by中重复date_format但没有成功

【问题讨论】:

    标签: apache-spark apache-spark-sql databricks


    【解决方案1】:

    试试下面的代码

    import org.apache.spark.sql.functions._
    
    spark.sql("""
      SELECT TO_DATE(CAST(UNIX_TIMESTAMP(ttr.created_at, 'dd/MM/yyyy') AS TIMESTAMP)) AS data from dl_wallet.tb_transaction as ttr order by data desc """
    ).show()
    

    【讨论】:

      【解决方案2】:

      当您将日期格式化为字符串时,排序是按字符串顺序完成的。一种解决方案是更改格式,使年份先出现,然后是月份,然后是日期。更好的方法是按日期列 (ttr.created_at) 而不是格式化字符串。

      【讨论】:

      • 好的,保持格式不变,但将排序改为ORDER BY ttr.created_at
      猜你喜欢
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多