hive时间戳格式?

g2ieeal7  于 2021-06-25  发布在  Hive
关注(0)|答案(2)|浏览(410)

hive是否支持任何特定的时间戳格式?
我的spark作业有一个时间戳“yyyy-mm-dd hh-mm-ss”,但是在hive中存储相同的时间戳时,数据正在转换为null?
配置单元表的数据类型为timestamp

blmhpbnm

blmhpbnm1#

是的,您可以查看配置单元语言手册
支持传统的unix时间戳和可选的纳秒精度。
支持的转换:
整数数字类型:以秒为单位解释为unix时间戳
浮点数字类型:用十进制精度解释为unix时间戳(以秒为单位)
strings:jdbc兼容java.sql.timestamp格式“yyyy-mm-dd hh:mm:ss.fffffff”(精确到小数点后9位)
我想这就是你的情况
文本文件中的时间戳必须使用yyyy-mm-dd hh:mm:ss[.f…]格式。如果是其他格式,请将其声明为适当的类型(int、float、string等),并使用自定义项将其转换为时间戳。

68bkxrlz

68bkxrlz2#

一个方法(结束昂贵的一个)是设置 mergeSchematrue 更简单的方法是处理 null 在timestamp列中使用deafult值,如 coalesce(col("<spark_ts_column>"),lit("1970-01-01-00-00-00").cast(TimestampType)) 顺便说一句,时间戳的格式看起来不标准,示例数据/代码会有所帮助。

相关问题