spark scala将int列转换为datetime

fhity93d  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(841)

我已将datetime存储为以下格式- YYYYMMDDHHMMSS . (数据类型-long int)
样本数据-

此临时视图- ingestionView 来自Dataframe。现在我想介绍一个新专栏 newingestiontime 在格式为的Dataframe中 YYYY-MM-DD HH:MM:SS .
我尝试过的一种方法是,但它也不起作用-

val res = ingestiondatetimeDf.select(col("ingestiontime"), unix_timestamp(col("newingestiontime"), "yyyyMMddHHmmss").cast(TimestampType).as("timestamp"))

输出-

请在这里帮助我,如果有更好的方法来建立这个,我会很高兴学习新的东西。
提前谢谢。

jm81lzqq

jm81lzqq1#

使用 from_unixtime & unix_timestamp .
检查以下代码。

scala> df
 .withColumn(
     "newingestiontime",
     from_unixtime(
         unix_timestamp($"ingestiontime".cast("string"),
         "yyyyMMddHHmmss")
        )
   )
.show(false)
+--------------+-------------------+
|ingestiontime |newingestiontime   |
+--------------+-------------------+
|20200501230000|2020-05-01 23:00:00|
+--------------+-------------------+

相关问题