【发布时间】:2026-01-21 23:40:01
【问题描述】:
我想将 spark 应用程序的启动时间存储到表中。因此尝试了以下代码:
scala> val i = sc.startTime
i: Long = 1519308048128
这个查询在YYYY-MM-DD HH:M:SS.sss 中给出了正确的时间戳。但是如果我在带有 spark.sql 的插入语句中使用它,NULL 值将被插入到目标表中。
spark.sql("
insert into table TST_DT
select from_unixtime(CAST(${i}/1000 AS bigint),'YYYY-MM-DD HH:MM:SS.SSS')
from temp limit 1")
可定位的TST_DT 仅有数据类型为Timestamp 的列
我尝试在 hive 中使用 cast 函数,结果仍然相同:-
spark.sql("
insert into table TST_DT
select cast(from_unixtime(CAST(${i}/1000 AS bigint),'YYYY-MM-DD HH:MM:SS.SSS')
as timestamp) from temp limit 1")
【问题讨论】:
标签: hadoop apache-spark hive apache-spark-sql