映射配置单元语句上的reduce作业
当我在Hive 中查询以下报表时
hive> SELECT * FROM USERS LIMIT 100;
它不会启动Map reduce作业,因为我们从表中选择了所有内容,并限制了它返回的记录数量
但当我做以下时
hive> select age,occupation from users limit 100;
它实际上是在踢地图缩减作业
这是否意味着,应用列级投影需要Map reduce Job?尽管我没有对它应用任何类型的过滤器。
无论何时运行正常的"select*",都会创建一个提取任务,而不是一个只转储数据而不执行任何操作的mapreduce任务。这相当于:
hadoop fs -cat $file_name
而每当您执行"选择列"时,映射作业都会在内部筛选该特定列并给出输出。
当您编写select * from table_name
时,会查看整个文件,而如果您选择列,则会启动仅映射作业,不会为其启动reduce,因为我们选择的是整个列。
Select * from table_name; --> will not launch a MR JOB
Select column from table_name; --> will launch a M JOB (map only job)
Select MAX(column_name) from table_name;
-->将启动MR JOB