2016-01-21 96 views
0

我们在配置单元中创建了一个外部镶木地板表格,使用插入覆盖将现有文本文件数据插入到外部镶木地板表格中。 但我们确实观察到现有文本文件的日期与拼花板文件不匹配。如何解决Hive文本文件格式与镶木地板文件格式之间的日期差异

数据从到文件

txt文件日期:2003年9月6日00:00:00 拼花文件日期:2003年9月6日4时○○分00秒

问题: 1)我们如何解决这个问题。 2)为什么我们得到这些数据差异。

+0

您可以共享表定义和您使用的语句插入数据? – LiMuBei

+0

您当地时区为UTC + 04的任何机会(考虑到DST,即9月使用夏令时)? –

回答

0

感谢您的帮助。

在Hue中同时使用直线和impala查询编辑器。访问镶木地板表中的数据存储,并且在通过Hue使用impala查询时发生时间戳问题。

这是最有可能涉及到的方式蜂巢和因帕拉已知差异处理时间戳值:
- 当配置单元存储时间戳值转换成平面形式,它的本地时间转换成UTC时间,当它读出数据,它会转换回当地时间。
- 另一方面,Impala在读取时间戳字段时不进行转换,因此,UTC时间会返回而不是本地时间。

如果你的服务器均位于美国东部时区,这样可以给为+ 4H时间偏移如下解释:
- 时间戳2003年9月6日00:00在本例中,应理解为EST EDT时间(9月06日是夏令时,因此UTC-4h时区)
- 当由Hive存储时,将+ 4h添加到时间戳
- Hive读回相同的偏移量,得到正确值值
- 由Impala回读时无法更正,因此显示2003-09-06 04:00:00

0

即使我们遇到类似的问题,当我们从sql server中摆放表时,这是由于驱动程序或jar问题。

当你正在做一个插入覆盖尝试使用转换为日期字段。

这应该让我知道你是否面临任何问题。