【问题标题】:Hive Map reduce Job clarification on selecting columnHive Map减少了选择列的工作说明
【发布时间】:2014-09-29 11:15:34
【问题描述】:

Map reduce Jobs on Hive 声明

当我在 Hive 中查询以下语句时

hive>  SELECT * FROM USERS LIMIT 100;

它不会启动 Map reduce Job,因为我们从表中选择所有内容并限制它返回的记录数

但是当我执行以下操作时

hive> select age,occupation from users limit 100;

实际上是在踢 Map reduce Job 吗?

这是否意味着,应用列级投影需要 Map reduce 作业,?虽然我没有对其应用任何类型的过滤器。

【问题讨论】:

标签: hadoop mapreduce hive


【解决方案1】:

每当您运行正常的“select *”时,都会创建一个 fetch 任务,而不是一个 mapreduce 任务,它只是按原样转储数据而不对其进行任何操作。这相当于一个:

hadoop fs -cat $file_name

而每当您执行“选择列”时,地图作业会在内部过滤该特定列并提供输出。

【讨论】:

    【解决方案2】:

    当你写select * from table_name时,会查看整个文件,而如果你选择column,则会启动一个map only job,不会为它启动reduce,因为我们选择的是整个column。

    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

    【讨论】:

      猜你喜欢
      • 2020-05-09
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      相关资源
      最近更新 更多