scala - 如何将excel日期长类型转换为scala中的时间戳
问题描述
列 1 = 43784.2892847338
尝试了以下选项
val finalDF=df1.withColumn("Column1 ",expr("""(Column1 -25569) * 86400.0"""))
print(finalDF)
结果:1911120001 预期结果应在“YYYY-MM-dd HH:mm:ss.SSS”中
你能帮我解决一下吗。
解决方案
如果你使用from_unixtime
then 它不会给你.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|
+---+----------------+-----------------------+
推荐阅读
- firebase-storage - FirebaseUI 存储在没有 jcenter() 的情况下无法工作
- matlab - 子集一个字符串
- php - Laravel 8.4 API GET Routes 返回 404
- python - Django Queryset 过滤器获取所有元素
- c# - Visual Studio 2019 - C# 5 中不提供“空传播运算符”功能。请使用语言版本 6 或更高版本
- android - Ruby - Appium 无法在 Android 的页面上找到元素
- python - 分数差到下一个等级
- python - 响应 Whatsapp 消息的程序
- sql - 有没有一种简单的方法可以通过将 %% 和使用 OR 组合在一起来过滤结果?我找不到方法
- python - 我的 GRU 模型上的 val_accuracy 没有增加,如何提高呢?