[ https://issues.apache.org/jira/browse/HIVE-3733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zhenxiao Luo reassigned HIVE-3733: ---------------------------------- Assignee: Zhenxiao Luo (was: Pradeep Kamath) > Improve Hive's logic for conditional merge > ------------------------------------------ > > Key: HIVE-3733 > URL: https://issues.apache.org/jira/browse/HIVE-3733 > Project: Hive > Issue Type: Improvement > Reporter: Pradeep Kamath > Assignee: Zhenxiao Luo > Attachments: HIVE-3733.1.patch.txt, HIVE-3733.3.patch.txt, > HIVE-3733.4.patch.txt, HIVE-3733.5.patch.txt, HIVE-3733.optimizer.patch.txt > > > If the config hive.merge.mapfiles is set to true and hive.merge.mapredfiles > is set to false then when hive encounters a FileSinkOperator when generating > map reduce tasks, it will look at the entire job to see if it has a reducer, > if it does it will not merge. Instead it should be check if the > FileSinkOperator is a child of the reducer. This means that outputs generated > in the mapper will be merged, and outputs generated in the reducer will not > be, the intended effect of setting those configs. > Simple repro: > set hive.merge.mapfiles=true; > set hive.merge.mapredfiles=false; > EXPLAIN > FROM <input_table> > INSERT OVERWRITE TABLE <output_table1> SELECT key, COUNT(*) group by key > INSERT OVERWRITE TABLE <output_table2> SELECT *; > The output should contain a Conditional Operator, Mapred Stages, and Move > tasks -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira