我正在使用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年2月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目录
我有以下问题。
答案 0 :(得分:4)
您需要在JOIN子句或WHERE子句中明确提及条件,即分区目录。因此它只会处理所需的分区,从而提高性能。
您可以参考此链接: Apache Hive LanguageManual