#--------------------------------------------------
# There are 1 DAGs in the session
#--------------------------------------------------
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-0
#--------------------------------------------------
Tez vertex scope-42	->	Tez vertex scope-39,
Tez vertex scope-32	->	Tez vertex scope-39,
Tez vertex scope-39

Tez vertex scope-42
# Plan on vertex
Local Rearrange[tuple]{int}(false) - scope-28	->	 scope-39
|   |
|   Project[int][0] - scope-24
|
|---b: New For Each(false,false)[bag] - scope-22
    |   |
    |   Cast[int] - scope-17
    |   |
    |   |---Project[bytearray][0] - scope-16
    |   |
    |   Cast[int] - scope-20
    |   |
    |   |---Project[bytearray][1] - scope-19
    |
    |---b: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-15
Tez vertex scope-32
# Plan on vertex
a: Split - scope-43
|   |
|   a: Store(file:///tmp/pigoutput/a:org.apache.pig.builtin.PigStorage) - scope-11
|   |
|   POValueOutputTez - scope-38	->	 [scope-39]
|   |
|   |---c: Limit - scope-14
|
|---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/input:org.apache.pig.builtin.PigStorage) - scope-0
Tez vertex scope-39
# Plan on vertex
d: Store(file:///tmp/pigoutput/d:org.apache.pig.builtin.PigStorage) - scope-31
|
|---d: FRJoin[tuple] - scope-25	<-	 scope-42
    |   |
    |   Project[int][0] - scope-23
    |   |
    |   Project[int][0] - scope-24
    |
    |---c: Limit - scope-41
        |
        |---POValueInputTez - scope-40	<-	 scope-32
