You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2014/11/25 14:03:23 UTC

svn commit: r1641614 [27/43] - in /hive/branches/spark: itests/src/test/resources/ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/ ql/src/java/org/apache/hadoop/hive/ql/optimizer/spark/ ql/src/java/org/apache/hadoop/hive/ql/parse/spark/ ql/sr...

Modified: hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_multi_insert.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_multi_insert.q.out?rev=1641614&r1=1641613&r2=1641614&view=diff
==============================================================================
--- hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_multi_insert.q.out (original)
+++ hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_multi_insert.q.out Tue Nov 25 13:03:18 2014
@@ -1,8 +1,12 @@
-PREHOOK: query: CREATE TABLE mi1(key INT, value STRING) STORED AS TEXTFILE
+PREHOOK: query: -- SORT_QUERY_RESULTS
+
+CREATE TABLE mi1(key INT, value STRING) STORED AS TEXTFILE
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@mi1
-POSTHOOK: query: CREATE TABLE mi1(key INT, value STRING) STORED AS TEXTFILE
+POSTHOOK: query: -- SORT_QUERY_RESULTS
+
+CREATE TABLE mi1(key INT, value STRING) STORED AS TEXTFILE
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@mi1
@@ -37,7 +41,8 @@ INSERT OVERWRITE TABLE mi3 PARTITION(ds=
 INSERT OVERWRITE DIRECTORY 'target/warehouse/mi4.out' SELECT a.value WHERE a.key >= 300
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-4 is a root stage
+  Stage-9 is a root stage
+  Stage-4 depends on stages: Stage-9
   Stage-5 depends on stages: Stage-4
   Stage-0 depends on stages: Stage-5
   Stage-6 depends on stages: Stage-0
@@ -48,10 +53,8 @@ STAGE DEPENDENCIES:
   Stage-3 depends on stages: Stage-4
 
 STAGE PLANS:
-  Stage: Stage-4
+  Stage: Stage-9
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -62,12 +65,21 @@ STAGE PLANS:
                   Filter Operator
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-        Map 3 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {key} {value}
+                        1 
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-4
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
             Map Operator Tree:
                 TableScan
                   alias: a
@@ -75,81 +87,80 @@ STAGE PLANS:
                   Filter Operator
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 
-                outputColumnNames: _col0, _col1
-                Statistics: Num rows: 275 Data size: 2921 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: (_col0 < 100) (type: boolean)
-                  Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
-                    outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-                          name: default.mi1
-                Filter Operator
-                  predicate: ((_col0 >= 100) and (_col0 < 200)) (type: boolean)
-                  Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
-                    outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-                          name: default.mi2
-                Filter Operator
-                  predicate: ((_col0 >= 200) and (_col0 < 300)) (type: boolean)
-                  Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: UDFToInteger(_col0) (type: int)
-                    outputColumnNames: _col0
-                    Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-                          name: default.mi3
-                Filter Operator
-                  predicate: (_col0 >= 300) (type: boolean)
-                  Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col1 (type: string)
-                    outputColumnNames: _col0
-                    Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Inner Join 0 to 1
+                      condition expressions:
+                        0 {key} {value}
+                        1 
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                      outputColumnNames: _col0, _col1
+                      input vertices:
+                        1 Map 1
+                      Statistics: Num rows: 275 Data size: 2921 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: (_col0 < 100) (type: boolean)
+                        Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
+                          outputColumnNames: _col0, _col1
+                          Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                                name: default.mi1
+                      Filter Operator
+                        predicate: ((_col0 >= 100) and (_col0 < 200)) (type: boolean)
+                        Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
+                          outputColumnNames: _col0, _col1
+                          Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                                name: default.mi2
+                      Filter Operator
+                        predicate: ((_col0 >= 200) and (_col0 < 300)) (type: boolean)
+                        Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: UDFToInteger(_col0) (type: int)
+                          outputColumnNames: _col0
+                          Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                                name: default.mi3
+                      Filter Operator
+                        predicate: (_col0 >= 300) (type: boolean)
+                        Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col1 (type: string)
+                          outputColumnNames: _col0
+                          Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-5
     Dependency Collection
@@ -821,468 +832,468 @@ POSTHOOK: Input: default@mi3@ds=2008-04-
 298	2008-04-08	12
 298	2008-04-08	12
 298	2008-04-08	12
-val_302
-val_305
-val_306
-val_307
-val_307
-val_307
-val_307
-val_308
-val_309
-val_309
-val_309
-val_309
-val_310
-val_311
-val_311
-val_311
 val_311
 val_311
 val_311
+val_409
+val_409
+val_409
+val_484
+val_401
+val_401
+val_401
+val_401
+val_401
+val_369
+val_369
+val_369
+val_406
+val_406
+val_406
+val_406
+val_429
+val_429
+val_374
+val_469
+val_469
+val_469
+val_469
+val_469
+val_495
+val_327
+val_327
+val_327
+val_403
+val_403
+val_403
+val_417
+val_417
+val_417
+val_430
+val_430
+val_430
+val_338
+val_446
+val_459
+val_459
+val_394
+val_482
+val_413
+val_413
+val_494
+val_466
+val_466
+val_466
+val_399
+val_399
+val_396
+val_396
+val_396
+val_417
+val_417
+val_417
+val_489
+val_489
+val_489
+val_489
+val_377
+val_397
+val_397
+val_309
+val_309
+val_365
+val_439
+val_439
+val_342
+val_342
+val_367
+val_367
+val_325
+val_325
+val_475
+val_339
+val_455
 val_311
 val_311
 val_311
-val_315
-val_316
 val_316
 val_316
 val_316
-val_316
-val_316
-val_316
-val_316
-val_316
-val_317
-val_317
-val_317
-val_317
-val_318
-val_318
-val_318
-val_318
-val_318
-val_318
+val_302
+val_438
+val_438
+val_438
+val_345
+val_489
+val_489
+val_489
+val_489
+val_378
+val_427
+val_356
+val_399
+val_399
+val_382
+val_382
+val_498
+val_498
+val_498
+val_386
+val_437
+val_469
+val_469
+val_469
+val_469
+val_469
+val_459
+val_459
+val_430
+val_430
+val_430
 val_318
 val_318
 val_318
-val_321
-val_321
-val_321
-val_321
-val_322
-val_322
-val_322
-val_322
-val_323
-val_325
-val_325
-val_325
-val_325
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_331
-val_331
-val_331
-val_331
 val_332
+val_311
+val_311
+val_311
 val_333
 val_333
-val_333
-val_333
-val_335
-val_336
-val_338
-val_339
-val_341
-val_342
-val_342
-val_342
-val_342
-val_344
-val_344
-val_344
-val_344
-val_345
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
+val_404
+val_404
+val_384
+val_384
+val_384
+val_489
+val_489
+val_489
+val_489
+val_353
+val_353
+val_373
 val_348
 val_348
 val_348
 val_348
 val_348
+val_466
+val_466
+val_466
+val_411
 val_348
 val_348
 val_348
 val_348
 val_348
-val_351
-val_353
-val_353
-val_353
-val_353
-val_356
-val_360
-val_362
-val_364
-val_365
-val_366
-val_367
-val_367
-val_367
-val_367
-val_368
-val_369
-val_369
-val_369
-val_369
-val_369
-val_369
-val_369
-val_369
-val_369
-val_373
-val_374
-val_375
-val_377
-val_378
-val_379
-val_382
-val_382
-val_382
-val_382
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_386
-val_389
-val_392
+val_463
+val_463
+val_431
+val_431
+val_431
+val_496
+val_322
+val_322
+val_468
+val_468
+val_468
+val_468
 val_393
-val_394
-val_395
-val_395
-val_395
-val_395
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_397
-val_397
-val_397
-val_397
-val_399
-val_399
-val_399
-val_399
-val_400
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_402
-val_403
-val_403
-val_403
-val_403
-val_403
-val_403
-val_403
-val_403
-val_403
-val_404
-val_404
+val_454
+val_454
+val_454
+val_418
+val_327
+val_327
+val_327
 val_404
 val_404
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_407
-val_409
-val_409
-val_409
-val_409
-val_409
-val_409
+val_436
+val_469
+val_469
+val_469
+val_469
+val_469
+val_468
+val_468
+val_468
+val_468
+val_308
+val_481
+val_457
+val_318
+val_318
+val_318
+val_318
+val_318
+val_318
 val_409
 val_409
 val_409
-val_411
-val_413
-val_413
+val_470
+val_369
+val_369
+val_369
+val_316
+val_316
+val_316
 val_413
 val_413
-val_414
-val_414
-val_414
-val_414
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_418
+val_490
+val_364
+val_395
+val_395
 val_419
-val_421
-val_424
-val_424
-val_424
-val_424
-val_427
-val_429
-val_429
-val_429
-val_429
-val_430
-val_430
-val_430
-val_430
-val_430
-val_430
+val_307
+val_307
+val_435
+val_306
+val_309
+val_309
+val_389
+val_327
+val_327
+val_327
+val_369
+val_369
+val_369
+val_392
+val_331
+val_331
+val_401
+val_401
+val_401
+val_401
+val_401
+val_452
+val_497
+val_402
+val_396
+val_396
+val_396
+val_317
+val_317
+val_395
+val_395
+val_336
+val_472
+val_322
+val_322
+val_498
+val_498
+val_498
+val_321
+val_321
 val_430
 val_430
 val_430
-val_431
-val_431
-val_431
-val_431
-val_431
-val_431
-val_431
-val_431
-val_431
-val_432
-val_435
-val_436
-val_437
-val_438
-val_438
-val_438
-val_438
-val_438
-val_438
-val_438
-val_438
-val_438
-val_439
-val_439
-val_439
-val_439
-val_443
-val_444
-val_446
-val_448
-val_449
-val_452
-val_453
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_455
-val_457
-val_458
-val_458
+val_489
+val_489
+val_489
+val_489
 val_458
 val_458
-val_459
-val_459
-val_459
-val_459
-val_460
-val_462
-val_462
-val_462
-val_462
-val_463
-val_463
-val_463
-val_463
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_467
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
+val_492
+val_492
+val_449
+val_453
 val_468
 val_468
 val_468
 val_468
+val_342
+val_342
+val_368
+val_367
+val_367
+val_344
+val_344
+val_485
+val_487
+val_480
+val_480
+val_480
+val_401
+val_401
+val_401
+val_401
+val_401
+val_438
+val_438
+val_438
+val_467
+val_432
+val_316
+val_316
+val_316
 val_469
 val_469
 val_469
 val_469
 val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_470
-val_472
-val_475
-val_477
-val_478
-val_478
+val_463
+val_463
+val_331
+val_331
+val_321
+val_321
+val_335
+val_466
+val_466
+val_466
+val_366
+val_403
+val_403
+val_403
+val_483
+val_406
+val_406
+val_406
+val_406
+val_409
+val_409
+val_409
+val_406
+val_406
+val_406
+val_406
+val_401
+val_401
+val_401
+val_401
+val_401
+val_348
+val_348
+val_348
+val_348
+val_348
+val_424
+val_424
+val_396
+val_396
+val_396
+val_431
+val_431
+val_431
+val_454
+val_454
+val_454
 val_478
 val_478
-val_479
-val_480
-val_480
-val_480
+val_431
+val_431
+val_431
+val_424
+val_424
+val_382
+val_382
+val_397
+val_397
 val_480
 val_480
 val_480
+val_351
+val_438
+val_438
+val_438
+val_414
+val_414
+val_491
+val_439
+val_439
+val_360
+val_479
+val_305
+val_417
+val_417
+val_417
+val_444
+val_429
+val_429
+val_443
+val_323
+val_325
+val_325
+val_478
+val_478
+val_468
+val_468
+val_468
+val_468
+val_310
+val_317
+val_317
+val_333
+val_333
+val_493
+val_460
 val_480
 val_480
 val_480
-val_481
-val_482
-val_483
-val_484
-val_485
-val_487
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_490
-val_491
-val_492
-val_492
+val_353
+val_353
+val_462
+val_462
+val_406
+val_406
+val_406
+val_406
+val_454
+val_454
+val_454
+val_375
+val_401
+val_401
+val_401
+val_401
+val_401
+val_421
+val_407
+val_384
+val_384
+val_384
+val_384
+val_384
+val_384
+val_379
+val_462
+val_462
 val_492
 val_492
-val_493
-val_494
-val_495
-val_496
-val_497
-val_498
-val_498
-val_498
-val_498
-val_498
-val_498
+val_341
 val_498
 val_498
 val_498
+val_458
+val_458
+val_362
+val_348
+val_348
+val_348
+val_348
+val_348
+val_344
+val_344
+val_469
+val_469
+val_469
+val_469
+val_469
+val_315
+val_448
+val_348
+val_348
+val_348
+val_348
+val_348
+val_307
+val_307
+val_414
+val_414
+val_477
+val_403
+val_403
+val_403
+val_400
 PREHOOK: query: EXPLAIN
 FROM src a JOIN src b ON (a.key = b.key)
 INSERT OVERWRITE TABLE mi1 SELECT a.* WHERE a.key < 100
@@ -1298,7 +1309,8 @@ INSERT OVERWRITE TABLE mi3 PARTITION(ds=
 INSERT OVERWRITE DIRECTORY 'target/warehouse/mi4.out' SELECT a.value WHERE a.key >= 300
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-4 is a root stage
+  Stage-9 is a root stage
+  Stage-4 depends on stages: Stage-9
   Stage-5 depends on stages: Stage-4
   Stage-0 depends on stages: Stage-5
   Stage-6 depends on stages: Stage-0
@@ -1309,10 +1321,8 @@ STAGE DEPENDENCIES:
   Stage-3 depends on stages: Stage-4
 
 STAGE PLANS:
-  Stage: Stage-4
+  Stage: Stage-9
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -1323,12 +1333,21 @@ STAGE PLANS:
                   Filter Operator
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-        Map 3 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {key} {value}
+                        1 
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-4
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
             Map Operator Tree:
                 TableScan
                   alias: a
@@ -1336,81 +1355,80 @@ STAGE PLANS:
                   Filter Operator
                     predicate: key is not null (type: boolean)
                     Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 
-                outputColumnNames: _col0, _col1
-                Statistics: Num rows: 275 Data size: 2921 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: (_col0 < 100) (type: boolean)
-                  Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
-                    outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-                          name: default.mi1
-                Filter Operator
-                  predicate: ((_col0 >= 100) and (_col0 < 200)) (type: boolean)
-                  Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
-                    outputColumnNames: _col0, _col1
-                    Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-                          name: default.mi2
-                Filter Operator
-                  predicate: ((_col0 >= 200) and (_col0 < 300)) (type: boolean)
-                  Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: UDFToInteger(_col0) (type: int)
-                    outputColumnNames: _col0
-                    Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-                          name: default.mi3
-                Filter Operator
-                  predicate: (_col0 >= 300) (type: boolean)
-                  Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col1 (type: string)
-                    outputColumnNames: _col0
-                    Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Inner Join 0 to 1
+                      condition expressions:
+                        0 {key} {value}
+                        1 
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                      outputColumnNames: _col0, _col1
+                      input vertices:
+                        1 Map 1
+                      Statistics: Num rows: 275 Data size: 2921 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: (_col0 < 100) (type: boolean)
+                        Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
+                          outputColumnNames: _col0, _col1
+                          Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                                name: default.mi1
+                      Filter Operator
+                        predicate: ((_col0 >= 100) and (_col0 < 200)) (type: boolean)
+                        Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: UDFToInteger(_col0) (type: int), _col1 (type: string)
+                          outputColumnNames: _col0, _col1
+                          Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                                name: default.mi2
+                      Filter Operator
+                        predicate: ((_col0 >= 200) and (_col0 < 300)) (type: boolean)
+                        Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: UDFToInteger(_col0) (type: int)
+                          outputColumnNames: _col0
+                          Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 30 Data size: 318 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                                name: default.mi3
+                      Filter Operator
+                        predicate: (_col0 >= 300) (type: boolean)
+                        Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col1 (type: string)
+                          outputColumnNames: _col0
+                          Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 91 Data size: 966 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-5
     Dependency Collection
@@ -2068,479 +2086,479 @@ POSTHOOK: Input: default@mi3@ds=2008-04-
 288	2008-04-08	12
 288	2008-04-08	12
 288	2008-04-08	12
-288	2008-04-08	12
-289	2008-04-08	12
-291	2008-04-08	12
-292	2008-04-08	12
-296	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-298	2008-04-08	12
-val_302
-val_305
-val_306
-val_307
-val_307
-val_307
-val_307
-val_308
-val_309
-val_309
-val_309
-val_309
-val_310
-val_311
-val_311
-val_311
+288	2008-04-08	12
+289	2008-04-08	12
+291	2008-04-08	12
+292	2008-04-08	12
+296	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
+298	2008-04-08	12
 val_311
 val_311
 val_311
+val_409
+val_409
+val_409
+val_484
+val_401
+val_401
+val_401
+val_401
+val_401
+val_369
+val_369
+val_369
+val_406
+val_406
+val_406
+val_406
+val_429
+val_429
+val_374
+val_469
+val_469
+val_469
+val_469
+val_469
+val_495
+val_327
+val_327
+val_327
+val_403
+val_403
+val_403
+val_417
+val_417
+val_417
+val_430
+val_430
+val_430
+val_338
+val_446
+val_459
+val_459
+val_394
+val_482
+val_413
+val_413
+val_494
+val_466
+val_466
+val_466
+val_399
+val_399
+val_396
+val_396
+val_396
+val_417
+val_417
+val_417
+val_489
+val_489
+val_489
+val_489
+val_377
+val_397
+val_397
+val_309
+val_309
+val_365
+val_439
+val_439
+val_342
+val_342
+val_367
+val_367
+val_325
+val_325
+val_475
+val_339
+val_455
 val_311
 val_311
 val_311
-val_315
-val_316
-val_316
-val_316
 val_316
 val_316
 val_316
-val_316
-val_316
-val_316
-val_317
-val_317
-val_317
-val_317
-val_318
-val_318
-val_318
-val_318
-val_318
-val_318
+val_302
+val_438
+val_438
+val_438
+val_345
+val_489
+val_489
+val_489
+val_489
+val_378
+val_427
+val_356
+val_399
+val_399
+val_382
+val_382
+val_498
+val_498
+val_498
+val_386
+val_437
+val_469
+val_469
+val_469
+val_469
+val_469
+val_459
+val_459
+val_430
+val_430
+val_430
 val_318
 val_318
 val_318
-val_321
-val_321
-val_321
-val_321
-val_322
-val_322
-val_322
-val_322
-val_323
-val_325
-val_325
-val_325
-val_325
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_327
-val_331
-val_331
-val_331
-val_331
 val_332
+val_311
+val_311
+val_311
 val_333
 val_333
-val_333
-val_333
-val_335
-val_336
-val_338
-val_339
-val_341
-val_342
-val_342
-val_342
-val_342
-val_344
-val_344
-val_344
-val_344
-val_345
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
-val_348
+val_404
+val_404
+val_384
+val_384
+val_384
+val_489
+val_489
+val_489
+val_489
+val_353
+val_353
+val_373
 val_348
 val_348
 val_348
 val_348
 val_348
+val_466
+val_466
+val_466
+val_411
 val_348
 val_348
 val_348
 val_348
 val_348
-val_351
-val_353
-val_353
-val_353
-val_353
-val_356
-val_360
-val_362
-val_364
-val_365
-val_366
-val_367
-val_367
-val_367
-val_367
-val_368
-val_369
-val_369
-val_369
+val_463
+val_463
+val_431
+val_431
+val_431
+val_496
+val_322
+val_322
+val_468
+val_468
+val_468
+val_468
+val_393
+val_454
+val_454
+val_454
+val_418
+val_327
+val_327
+val_327
+val_404
+val_404
+val_436
+val_469
+val_469
+val_469
+val_469
+val_469
+val_468
+val_468
+val_468
+val_468
+val_308
+val_481
+val_457
+val_318
+val_318
+val_318
+val_318
+val_318
+val_318
+val_409
+val_409
+val_409
+val_470
 val_369
 val_369
 val_369
+val_316
+val_316
+val_316
+val_413
+val_413
+val_490
+val_364
+val_395
+val_395
+val_419
+val_307
+val_307
+val_435
+val_306
+val_309
+val_309
+val_389
+val_327
+val_327
+val_327
 val_369
 val_369
 val_369
-val_373
-val_374
-val_375
-val_377
-val_378
-val_379
-val_382
-val_382
-val_382
-val_382
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_384
-val_386
-val_389
 val_392
-val_393
-val_394
-val_395
-val_395
-val_395
-val_395
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_396
-val_397
-val_397
-val_397
-val_397
-val_399
-val_399
-val_399
-val_399
-val_400
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
-val_401
+val_331
+val_331
 val_401
 val_401
 val_401
 val_401
 val_401
+val_452
+val_497
+val_402
+val_396
+val_396
+val_396
+val_317
+val_317
+val_395
+val_395
+val_336
+val_472
+val_322
+val_322
+val_498
+val_498
+val_498
+val_321
+val_321
+val_430
+val_430
+val_430
+val_489
+val_489
+val_489
+val_489
+val_458
+val_458
+val_492
+val_492
+val_449
+val_453
+val_468
+val_468
+val_468
+val_468
+val_342
+val_342
+val_368
+val_367
+val_367
+val_344
+val_344
+val_485
+val_487
+val_480
+val_480
+val_480
 val_401
 val_401
 val_401
 val_401
 val_401
-val_402
-val_403
-val_403
-val_403
-val_403
-val_403
-val_403
+val_438
+val_438
+val_438
+val_467
+val_432
+val_316
+val_316
+val_316
+val_469
+val_469
+val_469
+val_469
+val_469
+val_463
+val_463
+val_331
+val_331
+val_321
+val_321
+val_335
+val_466
+val_466
+val_466
+val_366
 val_403
 val_403
 val_403
-val_404
-val_404
-val_404
-val_404
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
-val_406
+val_483
 val_406
 val_406
 val_406
 val_406
+val_409
+val_409
+val_409
 val_406
 val_406
 val_406
 val_406
-val_407
-val_409
-val_409
-val_409
-val_409
-val_409
-val_409
-val_409
-val_409
-val_409
-val_411
-val_413
-val_413
-val_413
-val_413
-val_414
-val_414
-val_414
-val_414
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_417
-val_418
-val_419
-val_421
-val_424
-val_424
-val_424
-val_424
-val_427
-val_429
-val_429
-val_429
-val_429
-val_430
-val_430
-val_430
-val_430
-val_430
-val_430
-val_430
-val_430
-val_430
-val_431
-val_431
-val_431
+val_401
+val_401
+val_401
+val_401
+val_401
+val_348
+val_348
+val_348
+val_348
+val_348
+val_424
+val_424
+val_396
+val_396
+val_396
 val_431
 val_431
 val_431
+val_454
+val_454
+val_454
+val_478
+val_478
 val_431
 val_431
 val_431
-val_432
-val_435
-val_436
-val_437
-val_438
-val_438
-val_438
-val_438
-val_438
-val_438
+val_424
+val_424
+val_382
+val_382
+val_397
+val_397
+val_480
+val_480
+val_480
+val_351
 val_438
 val_438
 val_438
+val_414
+val_414
+val_491
 val_439
 val_439
-val_439
-val_439
-val_443
+val_360
+val_479
+val_305
+val_417
+val_417
+val_417
 val_444
-val_446
-val_448
-val_449
-val_452
-val_453
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_454
-val_455
-val_457
-val_458
-val_458
-val_458
-val_458
-val_459
-val_459
-val_459
-val_459
-val_460
-val_462
-val_462
-val_462
-val_462
-val_463
-val_463
-val_463
-val_463
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_466
-val_467
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
-val_468
+val_429
+val_429
+val_443
+val_323
+val_325
+val_325
+val_478
+val_478
 val_468
 val_468
 val_468
 val_468
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_469
-val_470
-val_472
-val_475
-val_477
-val_478
-val_478
-val_478
-val_478
-val_479
-val_480
-val_480
-val_480
-val_480
-val_480
-val_480
+val_310
+val_317
+val_317
+val_333
+val_333
+val_493
+val_460
 val_480
 val_480
 val_480
-val_481
-val_482
-val_483
-val_484
-val_485
-val_487
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_489
-val_490
-val_491
-val_492
-val_492
+val_353
+val_353
+val_462
+val_462
+val_406
+val_406
+val_406
+val_406
+val_454
+val_454
+val_454
+val_375
+val_401
+val_401
+val_401
+val_401
+val_401
+val_421
+val_407
+val_384
+val_384
+val_384
+val_384
+val_384
+val_384
+val_379
+val_462
+val_462
 val_492
 val_492
-val_493
-val_494
-val_495
-val_496
-val_497
-val_498
-val_498
-val_498
-val_498
-val_498
-val_498
+val_341
 val_498
 val_498
 val_498
+val_458
+val_458
+val_362
+val_348
+val_348
+val_348
+val_348
+val_348
+val_344
+val_344
+val_469
+val_469
+val_469
+val_469
+val_469
+val_315
+val_448
+val_348
+val_348
+val_348
+val_348
+val_348
+val_307
+val_307
+val_414
+val_414
+val_477
+val_403
+val_403
+val_403
+val_400

Modified: hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join1.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join1.q.out?rev=1641614&r1=1641613&r2=1641614&view=diff
==============================================================================
--- hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join1.q.out (original)
+++ hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join1.q.out Tue Nov 25 13:03:18 2014
@@ -21,14 +21,13 @@ EXPLAIN
  WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-3 is a root stage
+  Stage-1 depends on stages: Stage-3
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-3
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -39,13 +38,21 @@ STAGE PLANS:
                   Filter Operator
                     predicate: ((key > 10) and (key < 20)) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Map 3 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {key} {value}
+                        1 {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
             Map Operator Tree:
                 TableScan
                   alias: a
@@ -53,36 +60,35 @@ STAGE PLANS:
                   Filter Operator
                     predicate: ((key > 10) and (key < 20)) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Left Outer Join0 to 1
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 {KEY.reducesinkkey0} {VALUE._col0}
-                outputColumnNames: _col0, _col1, _col5, _col6
-                Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((((_col0 > 10) and (_col0 < 20)) and (_col5 > 15)) and (_col5 < 25)) (type: boolean)
-                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
-                    outputColumnNames: _col0, _col1, _col2, _col3
-                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Left Outer Join0 to 1
+                      condition expressions:
+                        0 {key} {value}
+                        1 {key} {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                      outputColumnNames: _col0, _col1, _col5, _col6
+                      input vertices:
+                        1 Map 1
+                      Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: ((((_col0 > 10) and (_col0 < 20)) and (_col5 > 15)) and (_col5 < 25)) (type: boolean)
+                        Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
+                          outputColumnNames: _col0, _col1, _col2, _col3
+                          Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-0
     Fetch Operator
@@ -135,14 +141,13 @@ POSTHOOK: query: EXPLAIN
  WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-3 is a root stage
+  Stage-1 depends on stages: Stage-3
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-3
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -153,13 +158,21 @@ STAGE PLANS:
                   Filter Operator
                     predicate: ((key > 10) and (key < 20)) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Map 3 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {key} {value}
+                        1 {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
             Map Operator Tree:
                 TableScan
                   alias: a
@@ -167,36 +180,35 @@ STAGE PLANS:
                   Filter Operator
                     predicate: ((key > 10) and (key < 20)) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Left Outer Join0 to 1
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 {KEY.reducesinkkey0} {VALUE._col0}
-                outputColumnNames: _col0, _col1, _col5, _col6
-                Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((_col5 > 15) and (_col5 < 25)) (type: boolean)
-                  Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
-                    outputColumnNames: _col0, _col1, _col2, _col3
-                    Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Left Outer Join0 to 1
+                      condition expressions:
+                        0 {key} {value}
+                        1 {key} {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                      outputColumnNames: _col0, _col1, _col5, _col6
+                      input vertices:
+                        1 Map 1
+                      Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: ((_col5 > 15) and (_col5 < 25)) (type: boolean)
+                        Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
+                          outputColumnNames: _col0, _col1, _col2, _col3
+                          Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-0
     Fetch Operator

Modified: hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join2.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join2.q.out?rev=1641614&r1=1641613&r2=1641614&view=diff
==============================================================================
--- hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join2.q.out (original)
+++ hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join2.q.out Tue Nov 25 13:03:18 2014
@@ -21,68 +21,74 @@ EXPLAIN
  WHERE a.key > '10' AND a.key < '20' AND b.key > '15' AND b.key < '25'
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-3 is a root stage
+  Stage-1 depends on stages: Stage-3
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-3
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
-        Map 1 
+        Map 2 
             Map Operator Tree:
                 TableScan
-                  alias: b
+                  alias: a
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: ((key > '15') and (key < '25')) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Map 3 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {value}
+                        1 {key} {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
             Map Operator Tree:
                 TableScan
-                  alias: a
+                  alias: b
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: ((key > '15') and (key < '25')) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Right Outer Join0 to 1
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 {KEY.reducesinkkey0} {VALUE._col0}
-                outputColumnNames: _col0, _col1, _col5, _col6
-                Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((((_col0 > '10') and (_col0 < '20')) and (_col5 > '15')) and (_col5 < '25')) (type: boolean)
-                  Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
-                    outputColumnNames: _col0, _col1, _col2, _col3
-                    Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Right Outer Join0 to 1
+                      condition expressions:
+                        0 {key} {value}
+                        1 {key} {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                      outputColumnNames: _col0, _col1, _col5, _col6
+                      input vertices:
+                        0 Map 2
+                      Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: ((((_col0 > '10') and (_col0 < '20')) and (_col5 > '15')) and (_col5 < '25')) (type: boolean)
+                        Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
+                          outputColumnNames: _col0, _col1, _col2, _col3
+                          Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-0
     Fetch Operator
@@ -255,68 +261,74 @@ POSTHOOK: query: EXPLAIN
  WHERE a.key > '10' AND a.key < '20' AND b.key > '15' AND b.key < '25'
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-3 is a root stage
+  Stage-1 depends on stages: Stage-3
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-3
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
-        Map 1 
+        Map 2 
             Map Operator Tree:
                 TableScan
-                  alias: b
+                  alias: a
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: ((key > '15') and (key < '25')) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Map 3 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {value}
+                        1 {key} {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
             Map Operator Tree:
                 TableScan
-                  alias: a
+                  alias: b
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: ((key > '15') and (key < '25')) (type: boolean)
                     Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Right Outer Join0 to 1
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 {KEY.reducesinkkey0} {VALUE._col0}
-                outputColumnNames: _col0, _col1, _col5, _col6
-                Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((_col0 > '10') and (_col0 < '20')) (type: boolean)
-                  Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
-                    outputColumnNames: _col0, _col1, _col2, _col3
-                    Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Right Outer Join0 to 1
+                      condition expressions:
+                        0 {key} {value}
+                        1 {key} {value}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                      outputColumnNames: _col0, _col1, _col5, _col6
+                      input vertices:
+                        0 Map 2
+                      Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: ((_col0 > '10') and (_col0 < '20')) (type: boolean)
+                        Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string)
+                          outputColumnNames: _col0, _col1, _col2, _col3
+                          Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 6 Data size: 64 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-0
     Fetch Operator

Modified: hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join4.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join4.q.out?rev=1641614&r1=1641613&r2=1641614&view=diff
==============================================================================
--- hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join4.q.out (original)
+++ hive/branches/spark/ql/src/test/results/clientpositive/spark/ppd_outer_join4.q.out Tue Nov 25 13:03:18 2014
@@ -27,14 +27,13 @@ EXPLAIN
  WHERE a.key > '10' AND a.key < '20' AND b.key > '15' AND b.key < '25' AND sqrt(c.key) <> 13
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-3 is a root stage
+  Stage-1 depends on stages: Stage-3
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-3
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1), Map 4 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -45,65 +44,82 @@ STAGE PLANS:
                   Filter Operator
                     predicate: (sqrt(key) <> 13) (type: boolean)
                     Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {key} {value}
+                        1 {value}
+                        2 {key}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                        2 key (type: string)
+            Local Work:
+              Map Reduce Local Work
         Map 3 
             Map Operator Tree:
                 TableScan
-                  alias: c
+                  alias: a
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: (sqrt(key) <> 13) (type: boolean)
                     Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-        Map 4 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {value}
+                        1 {key} {value}
+                        2 {key}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                        2 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
             Map Operator Tree:
                 TableScan
-                  alias: a
+                  alias: c
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: (sqrt(key) <> 13) (type: boolean)
                     Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Left Outer Join0 to 1
-                     Right Outer Join0 to 2
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 {KEY.reducesinkkey0} {VALUE._col0}
-                  2 {KEY.reducesinkkey0}
-                outputColumnNames: _col0, _col1, _col5, _col6, _col10
-                Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: (((((_col0 > '10') and (_col0 < '20')) and (_col5 > '15')) and (_col5 < '25')) and (sqrt(_col10) <> 13)) (type: boolean)
-                  Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string)
-                    outputColumnNames: _col0, _col1, _col2, _col3, _col4
-                    Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Left Outer Join0 to 1
+                           Right Outer Join0 to 2
+                      condition expressions:
+                        0 {key} {value}
+                        1 {key} {value}
+                        2 {key}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                        2 key (type: string)
+                      outputColumnNames: _col0, _col1, _col5, _col6, _col10
+                      input vertices:
+                        0 Map 3
+                        1 Map 1
+                      Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: (((((_col0 > '10') and (_col0 < '20')) and (_col5 > '15')) and (_col5 < '25')) and (sqrt(_col10) <> 13)) (type: boolean)
+                        Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string)
+                          outputColumnNames: _col0, _col1, _col2, _col3, _col4
+                          Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-0
     Fetch Operator
@@ -392,14 +408,13 @@ POSTHOOK: query: EXPLAIN
  WHERE a.key > '10' AND a.key < '20' AND b.key > '15' AND b.key < '25' AND sqrt(c.key) <> 13
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
+  Stage-3 is a root stage
+  Stage-1 depends on stages: Stage-3
   Stage-0 depends on stages: Stage-1
 
 STAGE PLANS:
-  Stage: Stage-1
+  Stage: Stage-3
     Spark
-      Edges:
-        Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1), Map 4 (PARTITION-LEVEL SORT, 1)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
@@ -410,65 +425,82 @@ STAGE PLANS:
                   Filter Operator
                     predicate: (sqrt(key) <> 13) (type: boolean)
                     Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {key} {value}
+                        1 {value}
+                        2 {key}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                        2 key (type: string)
+            Local Work:
+              Map Reduce Local Work
         Map 3 
             Map Operator Tree:
                 TableScan
-                  alias: c
+                  alias: a
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: (sqrt(key) <> 13) (type: boolean)
                     Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-        Map 4 
+                    Spark HashTable Sink Operator
+                      condition expressions:
+                        0 {value}
+                        1 {key} {value}
+                        2 {key}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                        2 key (type: string)
+            Local Work:
+              Map Reduce Local Work
+
+  Stage: Stage-1
+    Spark
+#### A masked pattern was here ####
+      Vertices:
+        Map 2 
             Map Operator Tree:
                 TableScan
-                  alias: a
+                  alias: c
                   Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: (sqrt(key) <> 13) (type: boolean)
                     Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                    Reduce Output Operator
-                      key expressions: key (type: string)
-                      sort order: +
-                      Map-reduce partition columns: key (type: string)
-                      Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
-                      value expressions: value (type: string)
-        Reducer 2 
-            Reduce Operator Tree:
-              Join Operator
-                condition map:
-                     Left Outer Join0 to 1
-                     Right Outer Join0 to 2
-                condition expressions:
-                  0 {KEY.reducesinkkey0} {VALUE._col0}
-                  1 {KEY.reducesinkkey0} {VALUE._col0}
-                  2 {KEY.reducesinkkey0}
-                outputColumnNames: _col0, _col1, _col5, _col6, _col10
-                Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((((_col5 > '15') and (_col5 < '25')) and (_col0 > '10')) and (_col0 < '20')) (type: boolean)
-                  Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string)
-                    outputColumnNames: _col0, _col1, _col2, _col3, _col4
-                    Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
-                    File Output Operator
-                      compressed: false
-                      Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
-                      table:
-                          input format: org.apache.hadoop.mapred.TextInputFormat
-                          output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
-                          serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+                    Map Join Operator
+                      condition map:
+                           Left Outer Join0 to 1
+                           Right Outer Join0 to 2
+                      condition expressions:
+                        0 {key} {value}
+                        1 {key} {value}
+                        2 {key}
+                      keys:
+                        0 key (type: string)
+                        1 key (type: string)
+                        2 key (type: string)
+                      outputColumnNames: _col0, _col1, _col5, _col6, _col10
+                      input vertices:
+                        0 Map 3
+                        1 Map 1
+                      Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE
+                      Filter Operator
+                        predicate: ((((_col5 > '15') and (_col5 < '25')) and (_col0 > '10')) and (_col0 < '20')) (type: boolean)
+                        Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
+                        Select Operator
+                          expressions: _col0 (type: string), _col1 (type: string), _col5 (type: string), _col6 (type: string), _col10 (type: string)
+                          outputColumnNames: _col0, _col1, _col2, _col3, _col4
+                          Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
+                          File Output Operator
+                            compressed: false
+                            Statistics: Num rows: 13 Data size: 138 Basic stats: COMPLETE Column stats: NONE
+                            table:
+                                input format: org.apache.hadoop.mapred.TextInputFormat
+                                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Local Work:
+              Map Reduce Local Work
 
   Stage: Stage-0
     Fetch Operator