#--------------------------------------------------
# There are 1 DAGs in the session
#--------------------------------------------------
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-0
#--------------------------------------------------
Tez vertex scope-36	->	Tez vertex scope-37,
Tez vertex scope-38	->	Tez vertex scope-37,
Tez vertex scope-37

Tez vertex scope-36
# Plan on vertex
b: Local Rearrange[tuple]{int}(false) - scope-51	->	 scope-37
|   |
|   Project[int][0] - scope-53
|
|---b1: New For Each(false,false)[bag] - scope-39
    |   |
    |   Project[int][0] - scope-40
    |   |
    |   POUserFunc(org.apache.pig.builtin.COUNT$Initial)[tuple] - scope-41
    |   |
    |   |---Project[bag][1] - scope-42
    |       |
    |       |---Project[bag][1] - scope-43
    |
    |---Pre Combiner Local Rearrange[tuple]{Unknown} - scope-54
        |
        |---a: New For Each(false,false)[bag] - scope-7
            |   |
            |   Cast[int] - scope-2
            |   |
            |   |---Project[bytearray][0] - scope-1
            |   |
            |   Cast[int] - scope-5
            |   |
            |   |---Project[bytearray][1] - scope-4
            |
            |---a: Load(file:///tmp/input1:org.apache.pig.builtin.PigStorage) - scope-0
Tez vertex scope-38
# Plan on vertex
Local Rearrange[tuple]{int}(false) - scope-32	->	 scope-37
|   |
|   Project[int][0] - scope-28
|
|---c: New For Each(false,false)[bag] - scope-26
    |   |
    |   Cast[int] - scope-21
    |   |
    |   |---Project[bytearray][0] - scope-20
    |   |
    |   Cast[int] - scope-24
    |   |
    |   |---Project[bytearray][1] - scope-23
    |
    |---c: Load(file:///tmp/input2:org.apache.pig.builtin.PigStorage) - scope-19
Tez vertex scope-37
# Combine plan on edge <scope-36>
b: Local Rearrange[tuple]{int}(false) - scope-55	->	 scope-37
|   |
|   Project[int][0] - scope-57
|
|---b1: New For Each(false,false)[bag] - scope-44
    |   |
    |   Project[int][0] - scope-45
    |   |
    |   POUserFunc(org.apache.pig.builtin.COUNT$Intermediate)[tuple] - scope-46
    |   |
    |   |---Project[bag][1] - scope-47
    |
    |---b: Package(CombinerPackager)[tuple]{int} - scope-50
# Plan on vertex
d: Store(file:///tmp/pigoutput/e:org.apache.pig.builtin.PigStorage) - scope-35
|
|---d: FRJoin[tuple] - scope-29	<-	 scope-38
    |   |
    |   Project[int][0] - scope-27
    |   |
    |   Project[int][0] - scope-28
    |
    |---b1: New For Each(false,false)[bag] - scope-18
        |   |
        |   Project[int][0] - scope-12
        |   |
        |   POUserFunc(org.apache.pig.builtin.COUNT$Final)[long] - scope-16
        |   |
        |   |---Project[bag][1] - scope-48
        |
        |---b: Package(CombinerPackager)[tuple]{int} - scope-9
