【发布时间】:2021-12-17 15:49:34
【问题描述】:
spark.sql("select case when trim(map('OPT OUT',1,'OPT IN',0,'',0)[coalesce(upper(program_1),'')]) == trim(num_fg) then trim(from_unixtime(unix_timestamp(upd_dt,'MM/dd/yyyy HH:mm:ss.SSS'), 'yyyy-MM-dd HH:mm:ss.sss')) else Now() end as upd_dt from input").show(false)
输入
val sample = Seq(("OPT OUT","1","07/21/2020 09:09:09.382")).toDF("program_1","num_fg", "upd_dt")
在上述书面查询中,微秒 'sss' 没有返回我们提供的输入。
如果输入是07/21/2020 09:09:09.382,它会返回07/21/2020 09:09:09.009,但预期的结果是07/21/2020 09:09:09.382 [无论我们在输入中给出多少微秒,它都应该在输出中显示]。
【问题讨论】:
-
我认为没有,因为他们在数据框中使用了 withcoumn,而我的格式是 CASE WHEN THEN ELSE END。我不确定如何沉迷于我的格式。您能否在我的查询中更改相同的内容?@ggordon
标签: sql dataframe apache-spark apache-spark-sql