如何在scala中将excel的长日期类型转换为时间戳

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

第1列=43784.2892847338
尝试了以下选项

val finalDF=df1.withColumn("Column1 ",expr("""(Column1 -25569) * 86400.0"""))
print(finalDF)

结果:1911120001预期结果应为“yyyy-mm-dd hh:mm:ss.sss”
你能帮我解决这个问题吗。

dfddblmv

dfddblmv1#

如果你使用 from_unixtime 那它就不会给你 .SSS 毫秒。因此,在这种情况下,铸件更好地使用。

val df1 = spark.createDataFrame(Seq(("1", 43784.2892847338))).toDF("id", "Column1")

val finalDF = df1.withColumn("Column1_timestamp", expr("""(Column1 -25569) * 86400.0""").cast("timestamp"))
finalDF.show(false)

+---+----------------+-----------------------+
|id |Column1         |Column1_timestamp      |
+---+----------------+-----------------------+
|1  |43784.2892847338|2019-11-15 06:56:34.201|
+---+----------------+-----------------------+

相关问题