话题
话不多说,咱们直奔主题,我们都知道hive查询过程中,一些类似select a from A;这样的语句是不会触发MapReduce的,但是最近在使用正则regexp做查询时偶然发现了一个新玩儿法。
不走MR写法
正则匹配某个字段的特定值时,在sql最后加一个limit的限定,是不走MR的,如下:
select a,b
from test_data
where acct_day='20190721'
and b regexp 'abc|666|aaa'
limit 10;
(备注:由于等不起直接kill掉了)
走MR的写法
当去掉limit限制的时候,查询整个分区的所有符合条件的数据,这时就会触发MR计算,如下:
select a,b
from test_data
where acct_day='20190721'
and b regexp 'abc|666|aaa' ;