【问题标题】:Converting CDT timestamp into UTC format in spark scala在 spark scala 中将 CDT 时间戳转换为 UTC 格式
【发布时间】:2020-08-12 21:55:40
【问题描述】:

我的 Dataframe,myDF 如下所示 -

DATE_TIME
Wed Sep  6 15:24:27 CDT 2017
Wed Sep  6 15:30:05 CDT 2017

预期输出格式:

2017-09-06 15:24:27
2017-09-06 15:30:05

需要将 DATE_TIME 时间戳转换为 UTC。

在 databricks 笔记本中尝试了以下代码,但它不起作用。

%scala

val df = Seq(("Wed Sep  6 15:24:27 CDT 2017")).toDF("times")
df.withColumn("times2",date_format(to_timestamp('times,"ddd MMM dd hh:mm:ss CDT yyyy"),"yyyy-MM-dd HH:mm:ss")).show(false)

times                        | times2    
Wed Sep  6 15:24:27 CDT 2017 | null

【问题讨论】:

    标签: scala dataframe apache-spark apache-spark-sql


    【解决方案1】:

    我认为我们需要从您的字符串中删除 wed 然后使用 to_timestamp() 函数。

    Example:

    df.show(false)
    /*
    +---------------------------+
    |times                      |
    +---------------------------+
    |Wed Sep 6 15:24:27 CDT 2017|
    +---------------------------+
    */
    
    df.withColumn("times2",expr("""to_timestamp(substring(times,5,length(times)),"MMM d HH:mm:ss z yyyy")""")).
    show(false)
    /*
    +---------------------------+-------------------+
    |times                      |times2             |
    +---------------------------+-------------------+
    |Wed Sep 6 15:24:27 CDT 2017|2017-09-06 15:24:27|
    +---------------------------+-------------------+
    */
    

    【讨论】:

    • 非常感谢。它现在工作正常。好兄弟。
    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2015-08-19
    • 1970-01-01
    • 2020-01-12
    • 2021-03-05
    相关资源
    最近更新 更多