Hive-表数据到键/值对

时间:2018-02-14 05:27:17

标签: hive mapreduce hiveql key-value

我一直想知道MapReduce如何为Hive工作。更具体地说,我想了解表中的数据如何转换为键值对。

我有这个表,比如HDFS上的3个分区

emp_table
+---+---------------+---+----------+
| id|           name|age|department|
+---+---------------+---+----------+
|  1|   James Gordon| 30|  Homicide|
|  2| Harvey Bullock| 35|  Homicide|
|  3|Kristen Kringle| 28|   Records|
|  4|   Edward Nygma| 30| Forensics|
|  5|  Lee Thompkins| 31| Forensics|
+---+---------------+---+----------+

我在其上运行此查询

SELECT id, name, department, count(department) FROM emp_table GROUP BY department;

如何将数据分解为键/值对?

我的理论是键是列名,值是特定列的值。

Key         Value
id          1, 2, 3, 4, 5
name        James Gordon, Harvey Bullock, Kristen Kringle, Edward Nygma, Lee Thompkins
department  Homicide, Homicide, Records, Forensics, Forensics

我没有在网上找到任何关于此的资源,所以我不确定我是否正确。有人可以帮我澄清这个吗?

另外,如果我做了任何不正确的假设(我怀疑很多),请告诉我。

1 个答案:

答案 0 :(得分:0)

Hive执行引擎确实生成了运行mapreduce的详细计划。该计划包括所有细节,如

  • mapreduce工作的数量
  • 每个map-reduce上的键值和连接条件。

在hive提示符下执行以下命令,然后遍历计划以了解mapreduce中的键值。

explain SELECT id, name, department, count(department) FROM emp_table GROUP BY department;

还必须看到EXPLAIN EXTENDEDa sample analysis of explain output