2012-10-17 39 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