SparkSQL中字符串转Timestamp返回Null,请求修正代码
SparkSQL字符串转Timestamp问题修正
你的问题出在格式字符串和实际数据不匹配:
- 原格式
'MM/dd/yyyy HH:mm:ss.SSSSSS'只定义了6位毫秒,但你的数据是7位小数(.6487480) - 字符串末尾的
Z(UTC时区标识)没有在格式串中对应匹配,导致Spark无法解析
修正后的代码:
to_timestamp(date_time_column, 'MM/dd/yyyy HH:mm:ss.SSSSSSSX')
如果Z是固定出现在所有数据末尾,也可以用'MM/dd/yyyy HH:mm:ss.SSSSSSSZ'作为格式参数,效果一致。
验证示例:
SELECT to_timestamp('05/30/2023 20:28:41.6487480Z', 'MM/dd/yyyy HH:mm:ss.SSSSSSSX') AS converted_timestamp;
执行后会正确解析出对应的Timestamp值,不再返回Null。
内容的提问来源于stack exchange,提问作者bda
相关产品推荐
相关产品推荐

