"
即。在这里它说类型只精确到毫秒,它从1970年开始。
但如果你看看hive-parquet代码 https://github.com/apache/hive/blob/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/ETypeConverter.java#L142 https://github.com/apache/hive/blob/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/timestamp/NanoTime.java#L54 似乎hive在镶木地板上的时间戳编码具有不同的规格,精确到纳秒级,并从"星期一,1月1日,4713" (在jodd.datetime.JDateTime中定义)
所以Hive的镶木地板时间戳存储与上述规格完全不同?
日期支持怎么样? https://issues.apache.org/jira/browse/HIVE-8119 我们是否会使用与" int32"不同的磁盘二进制编码;在上面的doc?
中指定感谢
答案 0 :(得分:1)
根据过去曾在此处链接但已被删除的讨论,似乎当在Hive中添加了对Parquet中保存时间戳的支持时,主要目标是与Impala的实现兼容,可能早于将timestamp_millis
类型添加到Parquet规范中。
Impala的时间戳表示映射到int96
Parquet类型(日期为4个字节,时间为8个字节,详细信息为here)。
所以不,在Parquet中存储Hive时间戳不会使用timestamp_millis
类型,而是使用Impala的int96
时间戳表示。