【问题标题】:Spark sql - Pyspark string to date conversionSpark sql - Pyspark 字符串到日期的转换
【发布时间】:2018-11-16 16:47:42
【问题描述】:

我有一列包含字符串格式的数据20180501,我想将其转换为日期格式,尝试使用

to_date(cast(unix_timestamp('20180501', 'YYYYMMDD') as timestamp))'

但它仍然没有工作。我正在使用带有数据框的 Spark SQL

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql pyspark-sql


    【解决方案1】:

    格式应该是yyyyMMdd:

    spark.sql("SELECT to_date(cast(unix_timestamp('20180501', 'yyyyMMdd') as timestamp))").show()
    # +------------------------------------------------------------------+
    # |to_date(CAST(unix_timestamp('20180501', 'yyyyMMdd') AS TIMESTAMP))|
    # +------------------------------------------------------------------+
    # |                                                        2018-05-01|
    # +------------------------------------------------------------------+
    

    【讨论】:

      【解决方案2】:

      正如在另一个答案中指出的那样,您使用的格式不正确。但是你也可以直接使用to_date

      spark.sql("SELECT to_date('20180501', 'yyyyMMdd')").show()
      +-------------------------------+
      |to_date('20180501', 'yyyyMMdd')|
      +-------------------------------+
      |                     2018-05-01|
      +-------------------------------+
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-31
        • 2019-10-27
        相关资源
        最近更新 更多