[英]Hive optimizer not performing well for joins involving partitioned tables
我使用的是Hive版本0.7.1-cdh3u2
我有两个大桌子(比方说)A和B,都是按天划分的。 我正在运行以下查询
select col1,col2
from A join B on (A.day=B.day and A.key=B.key)
where A.day='2014-02-25'
当我查看map reduce任务的xml文件时,我发现mapred.input.dir包含A的所有日期的A / 2014-02-25和所有hdfs目录,而不仅仅是特定日期('2014-02) -25' )。 这需要花费大量时间和更多的减少任务。
我也试过用
select col1,col2
from A join B on (A.day=B.day and A.key=B.key and A.day='2014-02-25'
and B.day='2014-02-25')
此查询执行速度更快,并且只有mapred.input.dir中所需的hdfs目录
我有以下问题。
您需要在JOIN子句或WHERE子句中显式提及条件,即分区目录。 因此它只会处理所需的分区,从而提高性能。
你可以参考这个链接: Apache Hive LanguageManual
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.