You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2017/12/12 00:00:15 UTC

[17/51] [partial] hive git commit: HIVE-13567 : Enable auto-gather column stats by default (Zoltan Haindrich, Pengcheng Xiong via Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/3bbc24d2/ql/src/test/results/clientpositive/llap/explainuser_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/explainuser_2.q.out b/ql/src/test/results/clientpositive/llap/explainuser_2.q.out
index 6b678f3..4f8e327 100644
--- a/ql/src/test/results/clientpositive/llap/explainuser_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/explainuser_2.q.out
@@ -1727,36 +1727,34 @@ Stage-0
     Stage-1
       Reducer 2 llap
       File Output Operator [FS_16]
-        Select Operator [SEL_15] (rows=292 width=10)
-          Output:["_col0","_col1"]
-          Merge Join Operator [MERGEJOIN_27] (rows=292 width=10)
-            Conds:RS_12._col2=RS_13._col1(Inner),Output:["_col1","_col2"]
-          <-Map 1 [SIMPLE_EDGE] llap
-            SHUFFLE [RS_12]
-              PartitionCols:_col2
-              Merge Join Operator [MERGEJOIN_25] (rows=266 width=10)
-                Conds:SEL_2._col0=SEL_5._col0(Inner),Output:["_col1","_col2"]
-              <-Select Operator [SEL_5] (rows=242 width=10)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_23] (rows=242 width=10)
-                    predicate:(key is not null and value is not null)
-                    TableScan [TS_3] (rows=242 width=10)
-                      default@tab,s1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-              <-Select Operator [SEL_2] (rows=242 width=10)
-                  Output:["_col0"]
-                  Filter Operator [FIL_22] (rows=242 width=10)
-                    predicate:key is not null
-                    TableScan [TS_0] (rows=242 width=10)
-                      default@tab,s3,Tbl:COMPLETE,Col:NONE,Output:["key"]
-          <-Map 4 [SIMPLE_EDGE] llap
-            SHUFFLE [RS_13]
-              PartitionCols:_col1
-              Select Operator [SEL_8] (rows=242 width=10)
-                Output:["_col1"]
-                Filter Operator [FIL_24] (rows=242 width=10)
-                  predicate:value is not null
-                  TableScan [TS_6] (rows=242 width=10)
-                    default@tab,s2,Tbl:COMPLETE,Col:NONE,Output:["value"]
+        Merge Join Operator [MERGEJOIN_27] (rows=292 width=10)
+          Conds:RS_12._col1=RS_13._col1(Inner),Output:["_col0","_col1"]
+        <-Map 1 [SIMPLE_EDGE] llap
+          SHUFFLE [RS_12]
+            PartitionCols:_col1
+            Merge Join Operator [MERGEJOIN_25] (rows=266 width=10)
+              Conds:SEL_2._col0=SEL_5._col0(Inner),Output:["_col0","_col1"]
+            <-Select Operator [SEL_5] (rows=242 width=10)
+                Output:["_col0"]
+                Filter Operator [FIL_23] (rows=242 width=10)
+                  predicate:key is not null
+                  TableScan [TS_3] (rows=242 width=10)
+                    default@tab,s3,Tbl:COMPLETE,Col:NONE,Output:["key"]
+            <-Select Operator [SEL_2] (rows=242 width=10)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_22] (rows=242 width=10)
+                  predicate:(key is not null and value is not null)
+                  TableScan [TS_0] (rows=242 width=10)
+                    default@tab,s1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+        <-Map 4 [SIMPLE_EDGE] llap
+          SHUFFLE [RS_13]
+            PartitionCols:_col1
+            Select Operator [SEL_8] (rows=242 width=10)
+              Output:["_col1"]
+              Filter Operator [FIL_24] (rows=242 width=10)
+                predicate:value is not null
+                TableScan [TS_6] (rows=242 width=10)
+                  default@tab,s2,Tbl:COMPLETE,Col:NONE,Output:["value"]
 
 PREHOOK: query: explain 
 select s1.key as key, s1.value as value from tab s1 join tab2 s3 on s1.key=s3.key
@@ -1804,36 +1802,34 @@ Stage-0
     Stage-1
       Reducer 2 llap
       File Output Operator [FS_16]
-        Select Operator [SEL_15] (rows=292 width=10)
-          Output:["_col0","_col1"]
-          Merge Join Operator [MERGEJOIN_27] (rows=292 width=10)
-            Conds:RS_12._col2=RS_13._col1(Inner),Output:["_col1","_col2"]
-          <-Map 1 [SIMPLE_EDGE] llap
-            SHUFFLE [RS_12]
-              PartitionCols:_col2
-              Merge Join Operator [MERGEJOIN_25] (rows=266 width=10)
-                Conds:SEL_2._col0=SEL_5._col0(Inner),Output:["_col1","_col2"]
-              <-Select Operator [SEL_5] (rows=242 width=10)
-                  Output:["_col0","_col1"]
-                  Filter Operator [FIL_23] (rows=242 width=10)
-                    predicate:(key is not null and value is not null)
-                    TableScan [TS_3] (rows=242 width=10)
-                      default@tab,s1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-              <-Select Operator [SEL_2] (rows=242 width=10)
-                  Output:["_col0"]
-                  Filter Operator [FIL_22] (rows=242 width=10)
-                    predicate:key is not null
-                    TableScan [TS_0] (rows=242 width=10)
-                      default@tab2,s3,Tbl:COMPLETE,Col:NONE,Output:["key"]
-          <-Map 4 [SIMPLE_EDGE] llap
-            SHUFFLE [RS_13]
-              PartitionCols:_col1
-              Select Operator [SEL_8] (rows=242 width=10)
-                Output:["_col1"]
-                Filter Operator [FIL_24] (rows=242 width=10)
-                  predicate:value is not null
-                  TableScan [TS_6] (rows=242 width=10)
-                    default@tab2,s2,Tbl:COMPLETE,Col:NONE,Output:["value"]
+        Merge Join Operator [MERGEJOIN_27] (rows=292 width=10)
+          Conds:RS_12._col1=RS_13._col1(Inner),Output:["_col0","_col1"]
+        <-Map 1 [SIMPLE_EDGE] llap
+          SHUFFLE [RS_12]
+            PartitionCols:_col1
+            Merge Join Operator [MERGEJOIN_25] (rows=266 width=10)
+              Conds:SEL_2._col0=SEL_5._col0(Inner),Output:["_col0","_col1"]
+            <-Select Operator [SEL_5] (rows=242 width=10)
+                Output:["_col0"]
+                Filter Operator [FIL_23] (rows=242 width=10)
+                  predicate:key is not null
+                  TableScan [TS_3] (rows=242 width=10)
+                    default@tab2,s3,Tbl:COMPLETE,Col:NONE,Output:["key"]
+            <-Select Operator [SEL_2] (rows=242 width=10)
+                Output:["_col0","_col1"]
+                Filter Operator [FIL_22] (rows=242 width=10)
+                  predicate:(key is not null and value is not null)
+                  TableScan [TS_0] (rows=242 width=10)
+                    default@tab,s1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+        <-Map 4 [SIMPLE_EDGE] llap
+          SHUFFLE [RS_13]
+            PartitionCols:_col1
+            Select Operator [SEL_8] (rows=242 width=10)
+              Output:["_col1"]
+              Filter Operator [FIL_24] (rows=242 width=10)
+                predicate:value is not null
+                TableScan [TS_6] (rows=242 width=10)
+                  default@tab2,s2,Tbl:COMPLETE,Col:NONE,Output:["value"]
 
 PREHOOK: query: explain
 select count(*) from (select s1.key as key, s1.value as value from tab s1 join tab s3 on s1.key=s3.key
@@ -1962,36 +1958,34 @@ Stage-0
                 <-Reducer 2 [CONTAINS] llap
                   Reduce Output Operator [RS_24]
                     PartitionCols:_col0
-                    Select Operator [SEL_15] (rows=292 width=10)
-                      Output:["_col0"]
-                      Merge Join Operator [MERGEJOIN_50] (rows=292 width=10)
-                        Conds:RS_12._col2=RS_13._col1(Inner),Output:["_col1"]
-                      <-Map 1 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_12]
-                          PartitionCols:_col2
-                          Merge Join Operator [MERGEJOIN_48] (rows=266 width=10)
-                            Conds:SEL_2._col0=SEL_5._col0(Inner),Output:["_col1","_col2"]
-                          <-Select Operator [SEL_5] (rows=242 width=10)
-                              Output:["_col0","_col1"]
-                              Filter Operator [FIL_44] (rows=242 width=10)
-                                predicate:(key is not null and value is not null)
-                                TableScan [TS_3] (rows=242 width=10)
-                                  default@tab,s1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                          <-Select Operator [SEL_2] (rows=242 width=10)
-                              Output:["_col0"]
-                              Filter Operator [FIL_43] (rows=242 width=10)
-                                predicate:key is not null
-                                TableScan [TS_0] (rows=242 width=10)
-                                  default@tab,s3,Tbl:COMPLETE,Col:NONE,Output:["key"]
-                      <-Map 7 [SIMPLE_EDGE] llap
-                        SHUFFLE [RS_13]
-                          PartitionCols:_col1
-                          Select Operator [SEL_8] (rows=242 width=10)
-                            Output:["_col1"]
-                            Filter Operator [FIL_45] (rows=242 width=10)
-                              predicate:value is not null
-                              TableScan [TS_6] (rows=242 width=10)
-                                default@tab,s2,Tbl:COMPLETE,Col:NONE,Output:["value"]
+                    Merge Join Operator [MERGEJOIN_50] (rows=292 width=10)
+                      Conds:RS_12._col1=RS_13._col1(Inner),Output:["_col0"]
+                    <-Map 1 [SIMPLE_EDGE] llap
+                      SHUFFLE [RS_12]
+                        PartitionCols:_col1
+                        Merge Join Operator [MERGEJOIN_48] (rows=266 width=10)
+                          Conds:SEL_2._col0=SEL_5._col0(Inner),Output:["_col0","_col1"]
+                        <-Select Operator [SEL_5] (rows=242 width=10)
+                            Output:["_col0"]
+                            Filter Operator [FIL_44] (rows=242 width=10)
+                              predicate:key is not null
+                              TableScan [TS_3] (rows=242 width=10)
+                                default@tab,s3,Tbl:COMPLETE,Col:NONE,Output:["key"]
+                        <-Select Operator [SEL_2] (rows=242 width=10)
+                            Output:["_col0","_col1"]
+                            Filter Operator [FIL_43] (rows=242 width=10)
+                              predicate:(key is not null and value is not null)
+                              TableScan [TS_0] (rows=242 width=10)
+                                default@tab,s1,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                    <-Map 7 [SIMPLE_EDGE] llap
+                      SHUFFLE [RS_13]
+                        PartitionCols:_col1
+                        Select Operator [SEL_8] (rows=242 width=10)
+                          Output:["_col1"]
+                          Filter Operator [FIL_45] (rows=242 width=10)
+                            predicate:value is not null
+                            TableScan [TS_6] (rows=242 width=10)
+                              default@tab,s2,Tbl:COMPLETE,Col:NONE,Output:["value"]
 
 PREHOOK: query: explain
 SELECT x.key, y.value
@@ -2592,19 +2586,22 @@ POSTHOOK: type: QUERY
 Plan optimized by CBO.
 
 Vertex dependency in root stage
-Map 1 <- Map 6 (BROADCAST_EDGE), Union 2 (CONTAINS)
-Map 10 <- Union 11 (CONTAINS)
-Map 12 <- Union 11 (CONTAINS)
-Map 13 <- Union 11 (CONTAINS)
-Map 16 <- Map 6 (BROADCAST_EDGE), Union 4 (CONTAINS)
-Map 17 <- Map 6 (BROADCAST_EDGE), Union 4 (CONTAINS)
-Map 18 <- Map 6 (BROADCAST_EDGE), Union 4 (CONTAINS)
-Map 19 <- Map 6 (BROADCAST_EDGE), Union 4 (CONTAINS)
-Map 5 <- Map 6 (BROADCAST_EDGE), Union 2 (CONTAINS)
-Map 6 <- Map 15 (BROADCAST_EDGE)
-Reducer 3 <- Map 7 (SIMPLE_EDGE), Union 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
-Reducer 8 <- Map 7 (SIMPLE_EDGE), Union 11 (SIMPLE_EDGE)
-Reducer 9 <- Map 14 (SIMPLE_EDGE), Reducer 8 (SIMPLE_EDGE), Union 4 (CONTAINS)
+Map 1 <- Map 9 (BROADCAST_EDGE), Union 2 (CONTAINS)
+Map 13 <- Union 14 (CONTAINS)
+Map 15 <- Union 14 (CONTAINS)
+Map 16 <- Union 14 (CONTAINS)
+Map 19 <- Map 9 (BROADCAST_EDGE), Union 4 (CONTAINS)
+Map 20 <- Map 9 (BROADCAST_EDGE), Union 4 (CONTAINS)
+Map 21 <- Map 9 (BROADCAST_EDGE), Union 4 (CONTAINS)
+Map 22 <- Map 9 (BROADCAST_EDGE), Union 4 (CONTAINS)
+Map 8 <- Map 9 (BROADCAST_EDGE), Union 2 (CONTAINS)
+Map 9 <- Map 18 (BROADCAST_EDGE)
+Reducer 11 <- Map 10 (SIMPLE_EDGE), Union 14 (SIMPLE_EDGE)
+Reducer 12 <- Map 17 (SIMPLE_EDGE), Reducer 11 (SIMPLE_EDGE), Union 4 (CONTAINS)
+Reducer 3 <- Map 10 (SIMPLE_EDGE), Union 2 (SIMPLE_EDGE), Union 4 (CONTAINS)
+Reducer 5 <- Union 4 (CUSTOM_SIMPLE_EDGE)
+Reducer 6 <- Union 4 (CUSTOM_SIMPLE_EDGE)
+Reducer 7 <- Union 4 (CUSTOM_SIMPLE_EDGE)
 
 Stage-5
   Stats Work{}
@@ -2614,231 +2611,353 @@ Stage-5
         Stage-4
           Dependency Collection{}
             Stage-3
-              Union 4
-              <-Map 16 [CONTAINS] llap
-                File Output Operator [FS_75]
-                  table:{"name:":"default.a"}
-                  Select Operator [SEL_72] (rows=1677 width=10)
-                    Output:["_col0","_col1"]
-                    Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
-                      Conds:RS_69._col1=SEL_54._col0(Inner),Output:["_col0","_col3"]
-                    <-Map 6 [BROADCAST_EDGE] llap
-                      BROADCAST [RS_69]
-                        PartitionCols:_col1
-                        Map Join Operator [MAPJOIN_123] (rows=27 width=7)
-                          Conds:SEL_10._col0=RS_67._col0(Inner),Output:["_col0","_col1","_col3"]
-                        <-Map 15 [BROADCAST_EDGE] llap
-                          BROADCAST [RS_67]
+              Reducer 5 llap
+              File Output Operator [FS_6]
+                Group By Operator [GBY_4] (rows=1 width=880)
+                  Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+                <-Union 4 [CUSTOM_SIMPLE_EDGE]
+                  <-Map 19 [CONTAINS] llap
+                    File Output Operator [FS_75]
+                      table:{"name:":"default.a"}
+                      Select Operator [SEL_72] (rows=1677 width=10)
+                        Output:["_col0","_col1"]
+                        Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
+                          Conds:RS_69._col1=SEL_54._col0(Inner),Output:["_col0","_col3"]
+                        <-Map 9 [BROADCAST_EDGE] llap
+                          BROADCAST [RS_69]
+                            PartitionCols:_col1
+                            Map Join Operator [MAPJOIN_123] (rows=27 width=7)
+                              Conds:SEL_10._col0=RS_67._col0(Inner),Output:["_col0","_col1","_col3"]
+                            <-Map 18 [BROADCAST_EDGE] llap
+                              BROADCAST [RS_67]
+                                PartitionCols:_col0
+                                Select Operator [SEL_51] (rows=25 width=7)
+                                  Output:["_col0","_col1"]
+                                  Filter Operator [FIL_114] (rows=25 width=7)
+                                    predicate:key is not null
+                                    TableScan [TS_49] (rows=25 width=7)
+                                      default@src1,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                            <-Select Operator [SEL_10] (rows=25 width=7)
+                                Output:["_col0","_col1"]
+                                Filter Operator [FIL_106] (rows=25 width=7)
+                                  predicate:(key is not null and value is not null)
+                                  TableScan [TS_8] (rows=25 width=7)
+                                    default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                        <-Select Operator [SEL_54] (rows=25 width=7)
+                            Output:["_col0"]
+                            Filter Operator [FIL_115] (rows=25 width=7)
+                              predicate:value is not null
+                              TableScan [TS_52] (rows=25 width=7)
+                                Output:["value"]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_77]
+                      table:{"name:":"default.b"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_79]
+                      table:{"name:":"default.c"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                  <-Map 20 [CONTAINS] llap
+                    File Output Operator [FS_75]
+                      table:{"name:":"default.a"}
+                      Select Operator [SEL_72] (rows=1677 width=10)
+                        Output:["_col0","_col1"]
+                        Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
+                          Conds:RS_129._col1=SEL_57._col0(Inner),Output:["_col0","_col3"]
+                        <-Map 9 [BROADCAST_EDGE] llap
+                          BROADCAST [RS_129]
+                            PartitionCols:_col1
+                             Please refer to the previous Map Join Operator [MAPJOIN_123]
+                        <-Select Operator [SEL_57] (rows=500 width=10)
+                            Output:["_col0"]
+                            Filter Operator [FIL_116] (rows=500 width=10)
+                              predicate:value is not null
+                              TableScan [TS_55] (rows=500 width=10)
+                                Output:["value"]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_77]
+                      table:{"name:":"default.b"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_79]
+                      table:{"name:":"default.c"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                  <-Map 21 [CONTAINS] llap
+                    File Output Operator [FS_75]
+                      table:{"name:":"default.a"}
+                      Select Operator [SEL_72] (rows=1677 width=10)
+                        Output:["_col0","_col1"]
+                        Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
+                          Conds:RS_130._col1=SEL_61._col0(Inner),Output:["_col0","_col3"]
+                        <-Map 9 [BROADCAST_EDGE] llap
+                          BROADCAST [RS_130]
+                            PartitionCols:_col1
+                             Please refer to the previous Map Join Operator [MAPJOIN_123]
+                        <-Select Operator [SEL_61] (rows=500 width=10)
+                            Output:["_col0"]
+                            Filter Operator [FIL_117] (rows=500 width=10)
+                              predicate:value is not null
+                              TableScan [TS_59] (rows=500 width=10)
+                                Output:["value"]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_77]
+                      table:{"name:":"default.b"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_79]
+                      table:{"name:":"default.c"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                  <-Map 22 [CONTAINS] llap
+                    File Output Operator [FS_75]
+                      table:{"name:":"default.a"}
+                      Select Operator [SEL_72] (rows=1677 width=10)
+                        Output:["_col0","_col1"]
+                        Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
+                          Conds:RS_131._col1=SEL_64._col0(Inner),Output:["_col0","_col3"]
+                        <-Map 9 [BROADCAST_EDGE] llap
+                          BROADCAST [RS_131]
+                            PartitionCols:_col1
+                             Please refer to the previous Map Join Operator [MAPJOIN_123]
+                        <-Select Operator [SEL_64] (rows=500 width=10)
+                            Output:["_col0"]
+                            Filter Operator [FIL_118] (rows=500 width=10)
+                              predicate:value is not null
+                              TableScan [TS_62] (rows=500 width=10)
+                                Output:["value"]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_77]
+                      table:{"name:":"default.b"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                    File Output Operator [FS_79]
+                      table:{"name:":"default.c"}
+                       Please refer to the previous Select Operator [SEL_72]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_72]
+                  <-Reducer 12 [CONTAINS] llap
+                    File Output Operator [FS_75]
+                      table:{"name:":"default.a"}
+                      Select Operator [SEL_44] (rows=1239 width=10)
+                        Output:["_col0","_col1"]
+                        Merge Join Operator [MERGEJOIN_122] (rows=1239 width=10)
+                          Conds:RS_41._col1=RS_42._col0(Inner),Output:["_col1","_col4"]
+                        <-Map 17 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_42]
                             PartitionCols:_col0
-                            Select Operator [SEL_51] (rows=25 width=7)
+                            Select Operator [SEL_37] (rows=500 width=10)
                               Output:["_col0","_col1"]
-                              Filter Operator [FIL_114] (rows=25 width=7)
+                              Filter Operator [FIL_112] (rows=500 width=10)
                                 predicate:key is not null
-                                TableScan [TS_49] (rows=25 width=7)
-                                  default@src1,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                        <-Select Operator [SEL_10] (rows=25 width=7)
-                            Output:["_col0","_col1"]
-                            Filter Operator [FIL_106] (rows=25 width=7)
-                              predicate:(key is not null and value is not null)
-                              TableScan [TS_8] (rows=25 width=7)
-                                default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                    <-Select Operator [SEL_54] (rows=25 width=7)
-                        Output:["_col0"]
-                        Filter Operator [FIL_115] (rows=25 width=7)
-                          predicate:value is not null
-                          TableScan [TS_52] (rows=25 width=7)
-                            Output:["value"]
-                File Output Operator [FS_77]
-                  table:{"name:":"default.b"}
-                   Please refer to the previous Select Operator [SEL_72]
-                File Output Operator [FS_79]
-                  table:{"name:":"default.c"}
-                   Please refer to the previous Select Operator [SEL_72]
-              <-Map 17 [CONTAINS] llap
-                File Output Operator [FS_75]
-                  table:{"name:":"default.a"}
-                  Select Operator [SEL_72] (rows=1677 width=10)
-                    Output:["_col0","_col1"]
-                    Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
-                      Conds:RS_129._col1=SEL_57._col0(Inner),Output:["_col0","_col3"]
-                    <-Map 6 [BROADCAST_EDGE] llap
-                      BROADCAST [RS_129]
-                        PartitionCols:_col1
-                         Please refer to the previous Map Join Operator [MAPJOIN_123]
-                    <-Select Operator [SEL_57] (rows=500 width=10)
-                        Output:["_col0"]
-                        Filter Operator [FIL_116] (rows=500 width=10)
-                          predicate:value is not null
-                          TableScan [TS_55] (rows=500 width=10)
-                            Output:["value"]
-                File Output Operator [FS_77]
-                  table:{"name:":"default.b"}
-                   Please refer to the previous Select Operator [SEL_72]
-                File Output Operator [FS_79]
-                  table:{"name:":"default.c"}
-                   Please refer to the previous Select Operator [SEL_72]
-              <-Map 18 [CONTAINS] llap
-                File Output Operator [FS_75]
-                  table:{"name:":"default.a"}
-                  Select Operator [SEL_72] (rows=1677 width=10)
-                    Output:["_col0","_col1"]
-                    Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
-                      Conds:RS_130._col1=SEL_61._col0(Inner),Output:["_col0","_col3"]
-                    <-Map 6 [BROADCAST_EDGE] llap
-                      BROADCAST [RS_130]
-                        PartitionCols:_col1
-                         Please refer to the previous Map Join Operator [MAPJOIN_123]
-                    <-Select Operator [SEL_61] (rows=500 width=10)
-                        Output:["_col0"]
-                        Filter Operator [FIL_117] (rows=500 width=10)
-                          predicate:value is not null
-                          TableScan [TS_59] (rows=500 width=10)
-                            Output:["value"]
-                File Output Operator [FS_77]
-                  table:{"name:":"default.b"}
-                   Please refer to the previous Select Operator [SEL_72]
-                File Output Operator [FS_79]
-                  table:{"name:":"default.c"}
-                   Please refer to the previous Select Operator [SEL_72]
-              <-Map 19 [CONTAINS] llap
-                File Output Operator [FS_75]
-                  table:{"name:":"default.a"}
-                  Select Operator [SEL_72] (rows=1677 width=10)
-                    Output:["_col0","_col1"]
-                    Map Join Operator [MAPJOIN_124] (rows=1677 width=10)
-                      Conds:RS_131._col1=SEL_64._col0(Inner),Output:["_col0","_col3"]
-                    <-Map 6 [BROADCAST_EDGE] llap
-                      BROADCAST [RS_131]
-                        PartitionCols:_col1
-                         Please refer to the previous Map Join Operator [MAPJOIN_123]
-                    <-Select Operator [SEL_64] (rows=500 width=10)
-                        Output:["_col0"]
-                        Filter Operator [FIL_118] (rows=500 width=10)
-                          predicate:value is not null
-                          TableScan [TS_62] (rows=500 width=10)
-                            Output:["value"]
-                File Output Operator [FS_77]
-                  table:{"name:":"default.b"}
-                   Please refer to the previous Select Operator [SEL_72]
-                File Output Operator [FS_79]
-                  table:{"name:":"default.c"}
-                   Please refer to the previous Select Operator [SEL_72]
-              <-Reducer 3 [CONTAINS] llap
-                File Output Operator [FS_75]
-                  table:{"name:":"default.a"}
-                  Select Operator [SEL_20] (rows=634 width=10)
-                    Output:["_col0","_col1"]
-                    Merge Join Operator [MERGEJOIN_120] (rows=634 width=10)
-                      Conds:Union 2._col1=RS_18._col0(Inner),Output:["_col1","_col4"]
-                    <-Map 7 [SIMPLE_EDGE] llap
-                      SHUFFLE [RS_18]
-                        PartitionCols:_col0
-                        Select Operator [SEL_13] (rows=500 width=10)
-                          Output:["_col0","_col1"]
-                          Filter Operator [FIL_107] (rows=500 width=10)
-                            predicate:key is not null
-                            TableScan [TS_11] (rows=500 width=10)
-                              default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                    <-Union 2 [SIMPLE_EDGE]
-                      <-Map 1 [CONTAINS] llap
-                        Reduce Output Operator [RS_17]
-                          PartitionCols:_col1
-                          Map Join Operator [MAPJOIN_119] (rows=577 width=10)
-                            Conds:SEL_2._col0=RS_15._col1(Inner),Output:["_col1"]
-                          <-Map 6 [BROADCAST_EDGE] llap
-                            BROADCAST [RS_15]
-                              PartitionCols:_col1
-                               Please refer to the previous Select Operator [SEL_10]
-                          <-Select Operator [SEL_2] (rows=25 width=7)
-                              Output:["_col0"]
-                              Filter Operator [FIL_104] (rows=25 width=7)
-                                predicate:value is not null
-                                TableScan [TS_0] (rows=25 width=7)
-                                  Output:["value"]
-                      <-Map 5 [CONTAINS] llap
-                        Reduce Output Operator [RS_17]
-                          PartitionCols:_col1
-                          Map Join Operator [MAPJOIN_119] (rows=577 width=10)
-                            Conds:SEL_5._col0=RS_125._col1(Inner),Output:["_col1"]
-                          <-Map 6 [BROADCAST_EDGE] llap
-                            BROADCAST [RS_125]
-                              PartitionCols:_col1
-                               Please refer to the previous Select Operator [SEL_10]
-                          <-Select Operator [SEL_5] (rows=500 width=10)
-                              Output:["_col0"]
-                              Filter Operator [FIL_105] (rows=500 width=10)
-                                predicate:value is not null
-                                TableScan [TS_3] (rows=500 width=10)
-                                  Output:["value"]
-                File Output Operator [FS_77]
-                  table:{"name:":"default.b"}
-                   Please refer to the previous Select Operator [SEL_20]
-                File Output Operator [FS_79]
-                  table:{"name:":"default.c"}
-                   Please refer to the previous Select Operator [SEL_20]
-              <-Reducer 9 [CONTAINS] llap
-                File Output Operator [FS_75]
-                  table:{"name:":"default.a"}
-                  Select Operator [SEL_44] (rows=1239 width=10)
-                    Output:["_col0","_col1"]
-                    Merge Join Operator [MERGEJOIN_122] (rows=1239 width=10)
-                      Conds:RS_41._col1=RS_42._col0(Inner),Output:["_col1","_col4"]
-                    <-Map 14 [SIMPLE_EDGE] llap
-                      SHUFFLE [RS_42]
-                        PartitionCols:_col0
-                        Select Operator [SEL_37] (rows=500 width=10)
-                          Output:["_col0","_col1"]
-                          Filter Operator [FIL_112] (rows=500 width=10)
-                            predicate:key is not null
-                            TableScan [TS_35] (rows=500 width=10)
-                              default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                    <-Reducer 8 [SIMPLE_EDGE] llap
-                      SHUFFLE [RS_41]
-                        PartitionCols:_col1
-                        Merge Join Operator [MERGEJOIN_121] (rows=1127 width=10)
-                          Conds:Union 11._col0=RS_39._col1(Inner),Output:["_col1"]
-                        <-Map 7 [SIMPLE_EDGE] llap
-                          SHUFFLE [RS_39]
+                                TableScan [TS_35] (rows=500 width=10)
+                                  default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                        <-Reducer 11 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_41]
                             PartitionCols:_col1
-                            Select Operator [SEL_34] (rows=500 width=10)
+                            Merge Join Operator [MERGEJOIN_121] (rows=1127 width=10)
+                              Conds:Union 14._col0=RS_39._col1(Inner),Output:["_col1"]
+                            <-Map 10 [SIMPLE_EDGE] llap
+                              SHUFFLE [RS_39]
+                                PartitionCols:_col1
+                                Select Operator [SEL_34] (rows=500 width=10)
+                                  Output:["_col0","_col1"]
+                                  Filter Operator [FIL_111] (rows=500 width=10)
+                                    predicate:(key is not null and value is not null)
+                                    TableScan [TS_11] (rows=500 width=10)
+                                      default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                            <-Union 14 [SIMPLE_EDGE]
+                              <-Map 13 [CONTAINS] llap
+                                Reduce Output Operator [RS_38]
+                                  PartitionCols:_col0
+                                  Select Operator [SEL_23] (rows=25 width=7)
+                                    Output:["_col0"]
+                                    Filter Operator [FIL_108] (rows=25 width=7)
+                                      predicate:value is not null
+                                      TableScan [TS_21] (rows=25 width=7)
+                                        Output:["value"]
+                              <-Map 15 [CONTAINS] llap
+                                Reduce Output Operator [RS_38]
+                                  PartitionCols:_col0
+                                  Select Operator [SEL_26] (rows=500 width=10)
+                                    Output:["_col0"]
+                                    Filter Operator [FIL_109] (rows=500 width=10)
+                                      predicate:value is not null
+                                      TableScan [TS_24] (rows=500 width=10)
+                                        Output:["value"]
+                              <-Map 16 [CONTAINS] llap
+                                Reduce Output Operator [RS_38]
+                                  PartitionCols:_col0
+                                  Select Operator [SEL_30] (rows=500 width=10)
+                                    Output:["_col0"]
+                                    Filter Operator [FIL_110] (rows=500 width=10)
+                                      predicate:value is not null
+                                      TableScan [TS_28] (rows=500 width=10)
+                                        Output:["value"]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_44]
+                    File Output Operator [FS_77]
+                      table:{"name:":"default.b"}
+                       Please refer to the previous Select Operator [SEL_44]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_44]
+                    File Output Operator [FS_79]
+                      table:{"name:":"default.c"}
+                       Please refer to the previous Select Operator [SEL_44]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_44]
+                  <-Reducer 3 [CONTAINS] llap
+                    File Output Operator [FS_75]
+                      table:{"name:":"default.a"}
+                      Select Operator [SEL_20] (rows=634 width=10)
+                        Output:["_col0","_col1"]
+                        Merge Join Operator [MERGEJOIN_120] (rows=634 width=10)
+                          Conds:Union 2._col1=RS_18._col0(Inner),Output:["_col1","_col4"]
+                        <-Map 10 [SIMPLE_EDGE] llap
+                          SHUFFLE [RS_18]
+                            PartitionCols:_col0
+                            Select Operator [SEL_13] (rows=500 width=10)
                               Output:["_col0","_col1"]
-                              Filter Operator [FIL_111] (rows=500 width=10)
-                                predicate:(key is not null and value is not null)
+                              Filter Operator [FIL_107] (rows=500 width=10)
+                                predicate:key is not null
                                  Please refer to the previous TableScan [TS_11]
-                        <-Union 11 [SIMPLE_EDGE]
-                          <-Map 10 [CONTAINS] llap
-                            Reduce Output Operator [RS_38]
-                              PartitionCols:_col0
-                              Select Operator [SEL_23] (rows=25 width=7)
-                                Output:["_col0"]
-                                Filter Operator [FIL_108] (rows=25 width=7)
-                                  predicate:value is not null
-                                  TableScan [TS_21] (rows=25 width=7)
-                                    Output:["value"]
-                          <-Map 12 [CONTAINS] llap
-                            Reduce Output Operator [RS_38]
-                              PartitionCols:_col0
-                              Select Operator [SEL_26] (rows=500 width=10)
-                                Output:["_col0"]
-                                Filter Operator [FIL_109] (rows=500 width=10)
-                                  predicate:value is not null
-                                  TableScan [TS_24] (rows=500 width=10)
-                                    Output:["value"]
-                          <-Map 13 [CONTAINS] llap
-                            Reduce Output Operator [RS_38]
-                              PartitionCols:_col0
-                              Select Operator [SEL_30] (rows=500 width=10)
-                                Output:["_col0"]
-                                Filter Operator [FIL_110] (rows=500 width=10)
-                                  predicate:value is not null
-                                  TableScan [TS_28] (rows=500 width=10)
-                                    Output:["value"]
-                File Output Operator [FS_77]
-                  table:{"name:":"default.b"}
-                   Please refer to the previous Select Operator [SEL_44]
-                File Output Operator [FS_79]
-                  table:{"name:":"default.c"}
-                   Please refer to the previous Select Operator [SEL_44]
+                        <-Union 2 [SIMPLE_EDGE]
+                          <-Map 1 [CONTAINS] llap
+                            Reduce Output Operator [RS_17]
+                              PartitionCols:_col1
+                              Map Join Operator [MAPJOIN_119] (rows=577 width=10)
+                                Conds:SEL_2._col0=RS_15._col1(Inner),Output:["_col1"]
+                              <-Map 9 [BROADCAST_EDGE] llap
+                                BROADCAST [RS_15]
+                                  PartitionCols:_col1
+                                   Please refer to the previous Select Operator [SEL_10]
+                              <-Select Operator [SEL_2] (rows=25 width=7)
+                                  Output:["_col0"]
+                                  Filter Operator [FIL_104] (rows=25 width=7)
+                                    predicate:value is not null
+                                    TableScan [TS_0] (rows=25 width=7)
+                                      Output:["value"]
+                          <-Map 8 [CONTAINS] llap
+                            Reduce Output Operator [RS_17]
+                              PartitionCols:_col1
+                              Map Join Operator [MAPJOIN_119] (rows=577 width=10)
+                                Conds:SEL_5._col0=RS_125._col1(Inner),Output:["_col1"]
+                              <-Map 9 [BROADCAST_EDGE] llap
+                                BROADCAST [RS_125]
+                                  PartitionCols:_col1
+                                   Please refer to the previous Select Operator [SEL_10]
+                              <-Select Operator [SEL_5] (rows=500 width=10)
+                                  Output:["_col0"]
+                                  Filter Operator [FIL_105] (rows=500 width=10)
+                                    predicate:value is not null
+                                    TableScan [TS_3] (rows=500 width=10)
+                                      Output:["value"]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_20]
+                    File Output Operator [FS_77]
+                      table:{"name:":"default.b"}
+                       Please refer to the previous Select Operator [SEL_20]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_20]
+                    File Output Operator [FS_79]
+                      table:{"name:":"default.c"}
+                       Please refer to the previous Select Operator [SEL_20]
+                    Reduce Output Operator [RS_3]
+                      Group By Operator [GBY_2] (rows=1 width=880)
+                        Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                        Select Operator [SEL_1] (rows=3550 width=10)
+                          Output:["key","value"]
+                           Please refer to the previous Select Operator [SEL_20]
+              Reducer 6 llap
+              File Output Operator [FS_6]
+                Group By Operator [GBY_4] (rows=1 width=880)
+                  Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+                <- Please refer to the previous Union 4 [CUSTOM_SIMPLE_EDGE]
+              Reducer 7 llap
+              File Output Operator [FS_6]
+                Group By Operator [GBY_4] (rows=1 width=880)
+                  Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+                <- Please refer to the previous Union 4 [CUSTOM_SIMPLE_EDGE]
 Stage-6
   Stats Work{}
     Stage-1
@@ -2888,26 +3007,29 @@ Plan optimized by CBO.
 
 Vertex dependency in root stage
 Map 1 <- Union 2 (CONTAINS)
-Map 10 <- Map 22 (BROADCAST_EDGE)
-Map 14 <- Union 15 (CONTAINS)
-Map 19 <- Union 15 (CONTAINS)
-Map 20 <- Union 17 (CONTAINS)
-Map 23 <- Union 24 (CONTAINS)
-Map 30 <- Union 24 (CONTAINS)
-Map 31 <- Union 26 (CONTAINS)
-Map 32 <- Union 28 (CONTAINS)
-Map 9 <- Union 2 (CONTAINS)
-Reducer 12 <- Map 11 (SIMPLE_EDGE), Reducer 18 (SIMPLE_EDGE)
-Reducer 13 <- Map 21 (SIMPLE_EDGE), Reducer 12 (SIMPLE_EDGE), Union 5 (CONTAINS)
-Reducer 16 <- Union 15 (SIMPLE_EDGE), Union 17 (CONTAINS)
-Reducer 18 <- Union 17 (SIMPLE_EDGE)
-Reducer 25 <- Union 24 (SIMPLE_EDGE), Union 26 (CONTAINS)
-Reducer 27 <- Union 26 (SIMPLE_EDGE), Union 28 (CONTAINS)
-Reducer 29 <- Map 10 (BROADCAST_EDGE), Union 28 (SIMPLE_EDGE), Union 7 (CONTAINS)
-Reducer 3 <- Map 10 (BROADCAST_EDGE), Union 2 (SIMPLE_EDGE)
-Reducer 4 <- Map 11 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS)
+Map 12 <- Union 2 (CONTAINS)
+Map 13 <- Map 25 (BROADCAST_EDGE)
+Map 17 <- Union 18 (CONTAINS)
+Map 22 <- Union 18 (CONTAINS)
+Map 23 <- Union 20 (CONTAINS)
+Map 26 <- Union 27 (CONTAINS)
+Map 33 <- Union 27 (CONTAINS)
+Map 34 <- Union 29 (CONTAINS)
+Map 35 <- Union 31 (CONTAINS)
+Reducer 10 <- Reducer 8 (CUSTOM_SIMPLE_EDGE)
+Reducer 11 <- Reducer 8 (CUSTOM_SIMPLE_EDGE)
+Reducer 15 <- Map 14 (SIMPLE_EDGE), Reducer 21 (SIMPLE_EDGE)
+Reducer 16 <- Map 24 (SIMPLE_EDGE), Reducer 15 (SIMPLE_EDGE), Union 5 (CONTAINS)
+Reducer 19 <- Union 18 (SIMPLE_EDGE), Union 20 (CONTAINS)
+Reducer 21 <- Union 20 (SIMPLE_EDGE)
+Reducer 28 <- Union 27 (SIMPLE_EDGE), Union 29 (CONTAINS)
+Reducer 3 <- Map 13 (BROADCAST_EDGE), Union 2 (SIMPLE_EDGE)
+Reducer 30 <- Union 29 (SIMPLE_EDGE), Union 31 (CONTAINS)
+Reducer 32 <- Map 13 (BROADCAST_EDGE), Union 31 (SIMPLE_EDGE), Union 7 (CONTAINS)
+Reducer 4 <- Map 14 (SIMPLE_EDGE), Reducer 3 (SIMPLE_EDGE), Union 5 (CONTAINS)
 Reducer 6 <- Union 5 (SIMPLE_EDGE), Union 7 (CONTAINS)
 Reducer 8 <- Union 7 (SIMPLE_EDGE)
+Reducer 9 <- Reducer 8 (CUSTOM_SIMPLE_EDGE)
 
 Stage-5
   Stats Work{}
@@ -2917,260 +3039,283 @@ Stage-5
         Stage-4
           Dependency Collection{}
             Stage-3
-              Reducer 8 llap
-              File Output Operator [FS_123]
-                table:{"name:":"default.a"}
-                Group By Operator [GBY_120] (rows=530 width=10)
-                  Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                <-Union 7 [SIMPLE_EDGE]
-                  <-Reducer 29 [CONTAINS] llap
-                    Reduce Output Operator [RS_119]
-                      PartitionCols:_col0, _col1
-                      Group By Operator [GBY_118] (rows=1061 width=10)
-                        Output:["_col0","_col1"],keys:_col0, _col1
-                        Select Operator [SEL_114] (rows=484 width=10)
-                          Output:["_col0","_col1"]
-                          Map Join Operator [MAPJOIN_172] (rows=484 width=10)
-                            Conds:RS_111._col1=SEL_107._col1(Inner),Output:["_col0","_col3"]
-                          <-Map 10 [BROADCAST_EDGE] llap
-                            BROADCAST [RS_111]
-                              PartitionCols:_col1
-                              Map Join Operator [MAPJOIN_171] (rows=27 width=7)
-                                Conds:SEL_15._col0=RS_109._col0(Inner),Output:["_col0","_col1","_col3"]
-                              <-Map 22 [BROADCAST_EDGE] llap
-                                BROADCAST [RS_109]
-                                  PartitionCols:_col0
-                                  Select Operator [SEL_74] (rows=25 width=7)
-                                    Output:["_col0","_col1"]
-                                    Filter Operator [FIL_162] (rows=25 width=7)
-                                      predicate:key is not null
-                                      TableScan [TS_72] (rows=25 width=7)
-                                        default@src1,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                              <-Select Operator [SEL_15] (rows=25 width=7)
+              Reducer 10 llap
+              File Output Operator [FS_6]
+                Group By Operator [GBY_4] (rows=1 width=880)
+                  Output:["_col0","_col1"],aggregations:["compute_stats(VALUE._col0)","compute_stats(VALUE._col1)"]
+                <-Reducer 8 [CUSTOM_SIMPLE_EDGE] llap
+                  PARTITION_ONLY_SHUFFLE [RS_3]
+                    Group By Operator [GBY_2] (rows=1 width=880)
+                      Output:["_col0","_col1"],aggregations:["compute_stats(key, 'hll')","compute_stats(value, 'hll')"]
+                      Select Operator [SEL_1] (rows=530 width=10)
+                        Output:["key","value"]
+                        Group By Operator [GBY_120] (rows=530 width=10)
+                          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                        <-Union 7 [SIMPLE_EDGE]
+                          <-Reducer 32 [CONTAINS] llap
+                            Reduce Output Operator [RS_119]
+                              PartitionCols:_col0, _col1
+                              Group By Operator [GBY_118] (rows=1061 width=10)
+                                Output:["_col0","_col1"],keys:_col0, _col1
+                                Select Operator [SEL_114] (rows=484 width=10)
                                   Output:["_col0","_col1"]
-                                  Filter Operator [FIL_154] (rows=25 width=7)
-                                    predicate:(key is not null and value is not null)
-                                    TableScan [TS_13] (rows=25 width=7)
-                                      default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                          <-Select Operator [SEL_107] (rows=440 width=10)
-                              Output:["_col1"]
-                              Group By Operator [GBY_106] (rows=440 width=10)
-                                Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                              <-Union 28 [SIMPLE_EDGE]
-                                <-Map 32 [CONTAINS] llap
-                                  Reduce Output Operator [RS_105]
-                                    PartitionCols:_col0, _col1
-                                    Group By Operator [GBY_104] (rows=881 width=10)
-                                      Output:["_col0","_col1"],keys:_col1, _col0
-                                      Select Operator [SEL_100] (rows=500 width=10)
-                                        Output:["_col0","_col1"]
-                                        Filter Operator [FIL_166] (rows=500 width=10)
-                                          predicate:value is not null
-                                          TableScan [TS_98] (rows=500 width=10)
-                                            Output:["key","value"]
-                                <-Reducer 27 [CONTAINS] llap
-                                  Reduce Output Operator [RS_105]
-                                    PartitionCols:_col0, _col1
-                                    Group By Operator [GBY_104] (rows=881 width=10)
-                                      Output:["_col0","_col1"],keys:_col1, _col0
-                                      Select Operator [SEL_97] (rows=381 width=10)
-                                        Output:["_col0","_col1"]
-                                        Group By Operator [GBY_96] (rows=381 width=10)
-                                          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                        <-Union 26 [SIMPLE_EDGE]
-                                          <-Map 31 [CONTAINS] llap
-                                            Reduce Output Operator [RS_95]
-                                              PartitionCols:_col0, _col1
-                                              Group By Operator [GBY_94] (rows=762 width=10)
-                                                Output:["_col0","_col1"],keys:_col1, _col0
-                                                Select Operator [SEL_90] (rows=500 width=10)
-                                                  Output:["_col0","_col1"]
-                                                  Filter Operator [FIL_165] (rows=500 width=10)
-                                                    predicate:value is not null
-                                                    TableScan [TS_88] (rows=500 width=10)
-                                                      Output:["key","value"]
-                                          <-Reducer 25 [CONTAINS] llap
-                                            Reduce Output Operator [RS_95]
-                                              PartitionCols:_col0, _col1
-                                              Group By Operator [GBY_94] (rows=762 width=10)
-                                                Output:["_col0","_col1"],keys:_col1, _col0
-                                                Select Operator [SEL_87] (rows=262 width=10)
-                                                  Output:["_col0","_col1"]
-                                                  Group By Operator [GBY_86] (rows=262 width=10)
+                                  Map Join Operator [MAPJOIN_172] (rows=484 width=10)
+                                    Conds:RS_111._col1=SEL_107._col1(Inner),Output:["_col0","_col3"]
+                                  <-Map 13 [BROADCAST_EDGE] llap
+                                    BROADCAST [RS_111]
+                                      PartitionCols:_col1
+                                      Map Join Operator [MAPJOIN_171] (rows=27 width=7)
+                                        Conds:SEL_15._col0=RS_109._col0(Inner),Output:["_col0","_col1","_col3"]
+                                      <-Map 25 [BROADCAST_EDGE] llap
+                                        BROADCAST [RS_109]
+                                          PartitionCols:_col0
+                                          Select Operator [SEL_74] (rows=25 width=7)
+                                            Output:["_col0","_col1"]
+                                            Filter Operator [FIL_162] (rows=25 width=7)
+                                              predicate:key is not null
+                                              TableScan [TS_72] (rows=25 width=7)
+                                                default@src1,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                                      <-Select Operator [SEL_15] (rows=25 width=7)
+                                          Output:["_col0","_col1"]
+                                          Filter Operator [FIL_154] (rows=25 width=7)
+                                            predicate:(key is not null and value is not null)
+                                            TableScan [TS_13] (rows=25 width=7)
+                                              default@src1,x,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                                  <-Select Operator [SEL_107] (rows=440 width=10)
+                                      Output:["_col1"]
+                                      Group By Operator [GBY_106] (rows=440 width=10)
+                                        Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                      <-Union 31 [SIMPLE_EDGE]
+                                        <-Map 35 [CONTAINS] llap
+                                          Reduce Output Operator [RS_105]
+                                            PartitionCols:_col0, _col1
+                                            Group By Operator [GBY_104] (rows=881 width=10)
+                                              Output:["_col0","_col1"],keys:_col1, _col0
+                                              Select Operator [SEL_100] (rows=500 width=10)
+                                                Output:["_col0","_col1"]
+                                                Filter Operator [FIL_166] (rows=500 width=10)
+                                                  predicate:value is not null
+                                                  TableScan [TS_98] (rows=500 width=10)
+                                                    Output:["key","value"]
+                                        <-Reducer 30 [CONTAINS] llap
+                                          Reduce Output Operator [RS_105]
+                                            PartitionCols:_col0, _col1
+                                            Group By Operator [GBY_104] (rows=881 width=10)
+                                              Output:["_col0","_col1"],keys:_col1, _col0
+                                              Select Operator [SEL_97] (rows=381 width=10)
+                                                Output:["_col0","_col1"]
+                                                Group By Operator [GBY_96] (rows=381 width=10)
+                                                  Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                                <-Union 29 [SIMPLE_EDGE]
+                                                  <-Map 34 [CONTAINS] llap
+                                                    Reduce Output Operator [RS_95]
+                                                      PartitionCols:_col0, _col1
+                                                      Group By Operator [GBY_94] (rows=762 width=10)
+                                                        Output:["_col0","_col1"],keys:_col1, _col0
+                                                        Select Operator [SEL_90] (rows=500 width=10)
+                                                          Output:["_col0","_col1"]
+                                                          Filter Operator [FIL_165] (rows=500 width=10)
+                                                            predicate:value is not null
+                                                            TableScan [TS_88] (rows=500 width=10)
+                                                              Output:["key","value"]
+                                                  <-Reducer 28 [CONTAINS] llap
+                                                    Reduce Output Operator [RS_95]
+                                                      PartitionCols:_col0, _col1
+                                                      Group By Operator [GBY_94] (rows=762 width=10)
+                                                        Output:["_col0","_col1"],keys:_col1, _col0
+                                                        Select Operator [SEL_87] (rows=262 width=10)
+                                                          Output:["_col0","_col1"]
+                                                          Group By Operator [GBY_86] (rows=262 width=10)
+                                                            Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                                          <-Union 27 [SIMPLE_EDGE]
+                                                            <-Map 26 [CONTAINS] llap
+                                                              Reduce Output Operator [RS_85]
+                                                                PartitionCols:_col0, _col1
+                                                                Group By Operator [GBY_84] (rows=525 width=10)
+                                                                  Output:["_col0","_col1"],keys:_col1, _col0
+                                                                  Select Operator [SEL_77] (rows=25 width=7)
+                                                                    Output:["_col0","_col1"]
+                                                                    Filter Operator [FIL_163] (rows=25 width=7)
+                                                                      predicate:value is not null
+                                                                      TableScan [TS_75] (rows=25 width=7)
+                                                                        Output:["key","value"]
+                                                            <-Map 33 [CONTAINS] llap
+                                                              Reduce Output Operator [RS_85]
+                                                                PartitionCols:_col0, _col1
+                                                                Group By Operator [GBY_84] (rows=525 width=10)
+                                                                  Output:["_col0","_col1"],keys:_col1, _col0
+                                                                  Select Operator [SEL_80] (rows=500 width=10)
+                                                                    Output:["_col0","_col1"]
+                                                                    Filter Operator [FIL_164] (rows=500 width=10)
+                                                                      predicate:value is not null
+                                                                      TableScan [TS_78] (rows=500 width=10)
+                                                                        Output:["key","value"]
+                          <-Reducer 6 [CONTAINS] llap
+                            Reduce Output Operator [RS_119]
+                              PartitionCols:_col0, _col1
+                              Group By Operator [GBY_118] (rows=1061 width=10)
+                                Output:["_col0","_col1"],keys:_col0, _col1
+                                Group By Operator [GBY_67] (rows=577 width=10)
+                                  Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                <-Union 5 [SIMPLE_EDGE]
+                                  <-Reducer 16 [CONTAINS] llap
+                                    Reduce Output Operator [RS_66]
+                                      PartitionCols:_col0, _col1
+                                      Group By Operator [GBY_65] (rows=1155 width=10)
+                                        Output:["_col0","_col1"],keys:_col0, _col1
+                                        Select Operator [SEL_61] (rows=605 width=10)
+                                          Output:["_col0","_col1"]
+                                          Merge Join Operator [MERGEJOIN_170] (rows=605 width=10)
+                                            Conds:RS_58._col2=RS_59._col0(Inner),Output:["_col2","_col5"]
+                                          <-Map 24 [SIMPLE_EDGE] llap
+                                            SHUFFLE [RS_59]
+                                              PartitionCols:_col0
+                                              Select Operator [SEL_54] (rows=500 width=10)
+                                                Output:["_col0","_col1"]
+                                                Filter Operator [FIL_160] (rows=500 width=10)
+                                                  predicate:key is not null
+                                                  TableScan [TS_52] (rows=500 width=10)
+                                                    default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                                          <-Reducer 15 [SIMPLE_EDGE] llap
+                                            SHUFFLE [RS_58]
+                                              PartitionCols:_col2
+                                              Merge Join Operator [MERGEJOIN_169] (rows=550 width=10)
+                                                Conds:RS_55._col1=RS_56._col1(Inner),Output:["_col2"]
+                                              <-Map 14 [SIMPLE_EDGE] llap
+                                                SHUFFLE [RS_56]
+                                                  PartitionCols:_col1
+                                                  Select Operator [SEL_51] (rows=500 width=10)
+                                                    Output:["_col0","_col1"]
+                                                    Filter Operator [FIL_159] (rows=500 width=10)
+                                                      predicate:(key is not null and value is not null)
+                                                      TableScan [TS_16] (rows=500 width=10)
+                                                        default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
+                                              <-Reducer 21 [SIMPLE_EDGE] llap
+                                                SHUFFLE [RS_55]
+                                                  PartitionCols:_col1
+                                                  Select Operator [SEL_48] (rows=381 width=10)
+                                                    Output:["_col1"]
+                                                    Group By Operator [GBY_47] (rows=381 width=10)
+                                                      Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                                    <-Union 20 [SIMPLE_EDGE]
+                                                      <-Map 23 [CONTAINS] llap
+                                                        Reduce Output Operator [RS_46]
+                                                          PartitionCols:_col0, _col1
+                                                          Group By Operator [GBY_45] (rows=762 width=10)
+                                                            Output:["_col0","_col1"],keys:_col1, _col0
+                                                            Select Operator [SEL_41] (rows=500 width=10)
+                                                              Output:["_col0","_col1"]
+                                                              Filter Operator [FIL_158] (rows=500 width=10)
+                                                                predicate:value is not null
+                                                                TableScan [TS_39] (rows=500 width=10)
+                                                                  Output:["key","value"]
+                                                      <-Reducer 19 [CONTAINS] llap
+                                                        Reduce Output Operator [RS_46]
+                                                          PartitionCols:_col0, _col1
+                                                          Group By Operator [GBY_45] (rows=762 width=10)
+                                                            Output:["_col0","_col1"],keys:_col1, _col0
+                                                            Select Operator [SEL_38] (rows=262 width=10)
+                                                              Output:["_col0","_col1"]
+                                                              Group By Operator [GBY_37] (rows=262 width=10)
+                                                                Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
+                                                              <-Union 18 [SIMPLE_EDGE]
+                                                                <-Map 17 [CONTAINS] llap
+                                                                  Reduce Output Operator [RS_36]
+                                                                    PartitionCols:_col0, _col1
+                                                                    Group By Operator [GBY_35] (rows=525 width=10)
+                                                                      Output:["_col0","_col1"],keys:_col1, _col0
+                                                                      Select Operator [SEL_28] (rows=25 width=7)
+                                                                        Output:["_col0","_col1"]
+                                                                        Filter Operator [FIL_156] (rows=25 width=7)
+                                                                          predicate:value is not null
+                                                                          TableScan [TS_26] (rows=25 width=7)
+                                                                            Output:["key","value"]
+                                                                <-Map 22 [CONTAINS] llap
+                                                                  Reduce Output Operator [RS_36]
+                                                                    PartitionCols:_col0, _col1
+                                                                    Group By Operator [GBY_35] (rows=525 width=10)
+                                                                      Output:["_col0","_col1"],keys:_col1, _col0
+                                                                      Select Operator [SEL_31] (rows=500 width=10)
+                                                                        Output:["_col0","_col1"]
+                                                                        Filter Operator [FIL_157] (rows=500 width=10)
+                                                                          predicate:value is not null
+                                                                          TableScan [TS_29] (rows=500 width=10)
+                                                                            Output:["key","value"]
+                                  <-Reducer 4 [CONTAINS] llap
+                                    Reduce Output Operator [RS_66]
+                                      PartitionCols:_col0, _col1
+                                      Group By Operator [GBY_65] (rows=1155 width=10)
+                                        Output:["_col0","_col1"],keys:_col0, _col1
+                                        Select Operator [SEL_25] (rows=550 width=10)
+                                          Output:["_col0","_col1"]
+                                          Merge Join Operator [MERGEJOIN_168] (rows=550 width=10)
+                                            Conds:RS_22._col2=RS_23._col0(Inner),Output:["_col2","_col5"]
+                                          <-Map 14 [SIMPLE_EDGE] llap
+                                            SHUFFLE [RS_23]
+                                              PartitionCols:_col0
+                                              Select Operator [SEL_18] (rows=500 width=10)
+                                                Output:["_col0","_col1"]
+                                                Filter Operator [FIL_155] (rows=500 width=10)
+                                                  predicate:key is not null
+                                                   Please refer to the previous TableScan [TS_16]
+                                          <-Reducer 3 [SIMPLE_EDGE] llap
+                                            SHUFFLE [RS_22]
+                                              PartitionCols:_col2
+                                              Map Join Operator [MAPJOIN_167] (rows=288 width=10)
+                                                Conds:SEL_12._col1=RS_20._col1(Inner),Output:["_col2"]
+                                              <-Map 13 [BROADCAST_EDGE] llap
+                                                BROADCAST [RS_20]
+                                                  PartitionCols:_col1
+                                                   Please refer to the previous Select Operator [SEL_15]
+                                              <-Select Operator [SEL_12] (rows=262 width=10)
+                                                  Output:["_col1"]
+                                                  Group By Operator [GBY_11] (rows=262 width=10)
                                                     Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                                  <-Union 24 [SIMPLE_EDGE]
-                                                    <-Map 23 [CONTAINS] llap
-                                                      Reduce Output Operator [RS_85]
+                                                  <-Union 2 [SIMPLE_EDGE]
+                                                    <-Map 1 [CONTAINS] llap
+                                                      Reduce Output Operator [RS_10]
                                                         PartitionCols:_col0, _col1
-                                                        Group By Operator [GBY_84] (rows=525 width=10)
+                                                        Group By Operator [GBY_9] (rows=525 width=10)
                                                           Output:["_col0","_col1"],keys:_col1, _col0
-                                                          Select Operator [SEL_77] (rows=25 width=7)
+                                                          Select Operator [SEL_2] (rows=25 width=7)
                                                             Output:["_col0","_col1"]
-                                                            Filter Operator [FIL_163] (rows=25 width=7)
+                                                            Filter Operator [FIL_152] (rows=25 width=7)
                                                               predicate:value is not null
-                                                              TableScan [TS_75] (rows=25 width=7)
+                                                              TableScan [TS_0] (rows=25 width=7)
                                                                 Output:["key","value"]
-                                                    <-Map 30 [CONTAINS] llap
-                                                      Reduce Output Operator [RS_85]
+                                                    <-Map 12 [CONTAINS] llap
+                                                      Reduce Output Operator [RS_10]
                                                         PartitionCols:_col0, _col1
-                                                        Group By Operator [GBY_84] (rows=525 width=10)
+                                                        Group By Operator [GBY_9] (rows=525 width=10)
                                                           Output:["_col0","_col1"],keys:_col1, _col0
-                                                          Select Operator [SEL_80] (rows=500 width=10)
+                                                          Select Operator [SEL_5] (rows=500 width=10)
                                                             Output:["_col0","_col1"]
-                                                            Filter Operator [FIL_164] (rows=500 width=10)
+                                                            Filter Operator [FIL_153] (rows=500 width=10)
                                                               predicate:value is not null
-                                                              TableScan [TS_78] (rows=500 width=10)
+                                                              TableScan [TS_3] (rows=500 width=10)
                                                                 Output:["key","value"]
-                  <-Reducer 6 [CONTAINS] llap
-                    Reduce Output Operator [RS_119]
-                      PartitionCols:_col0, _col1
-                      Group By Operator [GBY_118] (rows=1061 width=10)
-                        Output:["_col0","_col1"],keys:_col0, _col1
-                        Group By Operator [GBY_67] (rows=577 width=10)
-                          Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                        <-Union 5 [SIMPLE_EDGE]
-                          <-Reducer 13 [CONTAINS] llap
-                            Reduce Output Operator [RS_66]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_65] (rows=1155 width=10)
-                                Output:["_col0","_col1"],keys:_col0, _col1
-                                Select Operator [SEL_61] (rows=605 width=10)
-                                  Output:["_col0","_col1"]
-                                  Merge Join Operator [MERGEJOIN_170] (rows=605 width=10)
-                                    Conds:RS_58._col2=RS_59._col0(Inner),Output:["_col2","_col5"]
-                                  <-Map 21 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_59]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_54] (rows=500 width=10)
-                                        Output:["_col0","_col1"]
-                                        Filter Operator [FIL_160] (rows=500 width=10)
-                                          predicate:key is not null
-                                          TableScan [TS_52] (rows=500 width=10)
-                                            default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                                  <-Reducer 12 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_58]
-                                      PartitionCols:_col2
-                                      Merge Join Operator [MERGEJOIN_169] (rows=550 width=10)
-                                        Conds:RS_55._col1=RS_56._col1(Inner),Output:["_col2"]
-                                      <-Map 11 [SIMPLE_EDGE] llap
-                                        SHUFFLE [RS_56]
-                                          PartitionCols:_col1
-                                          Select Operator [SEL_51] (rows=500 width=10)
-                                            Output:["_col0","_col1"]
-                                            Filter Operator [FIL_159] (rows=500 width=10)
-                                              predicate:(key is not null and value is not null)
-                                              TableScan [TS_16] (rows=500 width=10)
-                                                default@src,y,Tbl:COMPLETE,Col:NONE,Output:["key","value"]
-                                      <-Reducer 18 [SIMPLE_EDGE] llap
-                                        SHUFFLE [RS_55]
-                                          PartitionCols:_col1
-                                          Select Operator [SEL_48] (rows=381 width=10)
-                                            Output:["_col1"]
-                                            Group By Operator [GBY_47] (rows=381 width=10)
-                                              Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                            <-Union 17 [SIMPLE_EDGE]
-                                              <-Map 20 [CONTAINS] llap
-                                                Reduce Output Operator [RS_46]
-                                                  PartitionCols:_col0, _col1
-                                                  Group By Operator [GBY_45] (rows=762 width=10)
-                                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                                    Select Operator [SEL_41] (rows=500 width=10)
-                                                      Output:["_col0","_col1"]
-                                                      Filter Operator [FIL_158] (rows=500 width=10)
-                                                        predicate:value is not null
-                                                        TableScan [TS_39] (rows=500 width=10)
-                                                          Output:["key","value"]
-                                              <-Reducer 16 [CONTAINS] llap
-                                                Reduce Output Operator [RS_46]
-                                                  PartitionCols:_col0, _col1
-                                                  Group By Operator [GBY_45] (rows=762 width=10)
-                                                    Output:["_col0","_col1"],keys:_col1, _col0
-                                                    Select Operator [SEL_38] (rows=262 width=10)
-                                                      Output:["_col0","_col1"]
-                                                      Group By Operator [GBY_37] (rows=262 width=10)
-                                                        Output:["_col0","_col1"],keys:KEY._col0, KEY._col1
-                                                      <-Union 15 [SIMPLE_EDGE]
-                                                        <-Map 14 [CONTAINS] llap
-                                                          Reduce Output Operator [RS_36]
-                                                            PartitionCols:_col0, _col1
-                                                            Group By Operator [GBY_35] (rows=525 width=10)
-                                                              Output:["_col0","_col1"],keys:_col1, _col0
-                                                              Select Operator [SEL_28] (rows=25 width=7)
-                                                                Output:["_col0","_col1"]
-                                                                Filter Operator [FIL_156] (rows=25 width=7)
-                                                                  predicate:value is not null
-                                                                  TableScan [TS_26] (rows=25 width=7)
-                                                                    Output:["key","value"]
-                                                        <-Map 19 [CONTAINS] llap
-                                                          Reduce Output Operator [RS_36]
-                                                            PartitionCols:_col0, _col1
-                                                            Group By Operator [GBY_35] (rows=525 width=10)
-                                                              Output:["_col0","_col1"],keys:_col1, _col0
-                                                              Select Operator [SEL_31] (rows=500 width=10)
-                                                                Output:["_col0","_col1"]
-                                                                Filter Operator [FIL_157] (rows=500 width=10)
-                                                                  predicate:value is not null
-                                                                  TableScan [TS_29] (rows=500 width=10)
-                                                                    Output:["key","value"]
-                          <-Reducer 4 [CONTAINS] llap
-                            Reduce Output Operator [RS_66]
-                              PartitionCols:_col0, _col1
-                              Group By Operator [GBY_65] (rows=1155 width=10)
-                                Output:["_col0","_col1"],keys:_col0, _col1
-                                Select Operator [SEL_25] (rows=550 width=10)
-                                  Output:["_col0","_col1"]
-                                  Merge Join Operator [MERGEJOIN_168] (rows=550 width=10)
-                                    Conds:RS_22._col2=RS_23._col0(Inner),Output:["_col2","_col5"]
-                                  <-Map 11 [SIMPLE_EDGE] llap
-                                    SHUFFLE [RS_23]
-                                      PartitionCols:_col0
-                                      Select Operator [SEL_18] (rows=500 width=10)
-                                        Output:["_col0","_col1"]
-                                        Filter Operator [FIL_155] (rows=500 width=10)
-                                          predicate:key is not null
-                                           Please refer to the previous TableScan [TS_16]
-                                  <-Reducer 3 [SIMPLE_EDGE] llap
-                                    

<TRUNCATED>