为什么分区可以在hive表中进行比较?

qoefvg9y  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(411)

我知道我们可以使用“<”或“>”来比较配置单元表中的分区,即使pt是表示日期的字符串类型。就像这样:

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

Hive可以用我们想要的正确方法。
我的问题是hive如何做到这一点,以及为什么它可以通过正确的方式比较日期字符串?
谢谢!

iyr7buue

iyr7buue1#

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

相关问题