我一直在想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条答案
按热度按时间ee7vknir1#
配置单元执行引擎生成运行mapreduce的详细计划。这个计划包括所有细节,如
mapreduce作业数
每个Map上的键值和联接条件减少。
只需在hive提示符下执行下面的命令并遍历计划,就可以理解mapreduce中的键值。
还必须看到
EXPLAIN EXTENDED
并对解释输出进行了样本分析。