2012-10-17 34 views
0

我知道我们可以使用“<”或“>”比较hive表中的分区,即使pt是表示日期的字符串类型。就像这样:为什么分区可以在蜂巢表中媲美?

WHERE page_views.date >= '2008-03-01' AND page_views.date <= '2008-03-31' 

蜂巢可以用我们想要的正确方式做到这一点。

我的问题是如何配置单元可以做到这一点,以及为什么它可以通过正确的方式比较日期字符串?

谢谢!

回答

1

在Hive中,分区是实现选择性扫描的一种方式,因此每个分区将有一个或多个构成它的文件。当使用分区进行查询时,速度更快,因为Hive知道需要扫描哪些文件,哪些文件不需要扫描。 Hive可以在你的情况下理解顺序,即使它是一个字符串,因为你的字段是'yyyy-MM-dd'格式的字典顺序匹配日期顺序,如果你使用其他日期格式,例如'MM-dd -yyyy',它不起作用。

+0

好的,我明白了。谢谢! – Tim