我一直想知道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
我没有在网上找到任何关于此的资源,所以我不确定我是否正确。有人可以帮我澄清这个吗?
另外,如果我做了任何不正确的假设(我怀疑很多),请告诉我。
答案 0 :(得分:0)
Hive执行引擎确实生成了运行mapreduce的详细计划。该计划包括所有细节,如
在hive提示符下执行以下命令,然后遍历计划以了解mapreduce中的键值。
explain SELECT id, name, department, count(department) FROM emp_table GROUP BY department;
还必须看到EXPLAIN EXTENDED
和a sample analysis of explain output。