Hive Map减少了选择列时的工作说明



映射配置单元语句上的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

相关内容

  • 没有找到相关文章

最新更新