set hive.multigroupby.singlereducer=true; CREATE TABLE DEST1(key ARRAY, value BIGINT) STORED AS TEXTFILE; CREATE TABLE DEST2(key MAP, value BIGINT) STORED AS TEXTFILE; EXPLAIN FROM SRC INSERT OVERWRITE TABLE DEST1 SELECT ARRAY(SRC.key), COUNT(1) GROUP BY ARRAY(SRC.key) limit 10 INSERT OVERWRITE TABLE DEST2 SELECT MAP(SRC.key, SRC.value), COUNT(1) GROUP BY MAP(SRC.key, SRC.value) limit 10; FROM SRC INSERT OVERWRITE TABLE DEST1 SELECT ARRAY(SRC.key), COUNT(1) GROUP BY ARRAY(SRC.key) limit 10 INSERT OVERWRITE TABLE DEST2 SELECT MAP(SRC.key, SRC.value), COUNT(1) GROUP BY MAP(SRC.key, SRC.value) limit 10; SELECT DEST1.* FROM DEST1 ORDER BY key[0] ASC, value ASC; SELECT DEST2.* FROM DEST2 ORDER BY 1 ASC, value ASC;