【问题标题】:Spark Scala Convert Int Column into DatetimeSpark Scala 将 Int 列转换为日期时间
【发布时间】:2020-11-06 06:16:44
【问题描述】:

我将日期时间存储为以下格式 - YYYYMMDDHHMMSS。 (数据类型 -Long Int)

样本数据 -

这个临时视图 - ingestionView 来自一个 DataFrame。 现在我想在数据框中引入一个新列newingestiontime,其格式为YYYY-MM-DD HH:MM:SS

我尝试过的方法之一是,但它也不起作用 -

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

输出 -

请在这里帮助我,如果有更好的方法来建立这一点,我会很高兴学习新事物。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    使用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|
    +--------------+-------------------+
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      相关资源
      最近更新 更多