#--------------------------------------------------
# There are 1 DAGs in the session
#--------------------------------------------------
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-0
#--------------------------------------------------
Tez vertex scope-30	->	Tez vertex scope-54,
Tez vertex scope-54	->	Tez vertex scope-37,Tez vertex scope-64,
Tez vertex scope-64	->	Tez vertex scope-67,
Tez vertex scope-31	->	Tez vertex scope-35,Tez vertex scope-37,
Tez vertex scope-35	->	Tez vertex scope-37,
Tez vertex scope-37	->	Tez vertex scope-67,
Tez vertex scope-67

Tez vertex scope-30
# Plan on vertex
Local Rearrange[tuple]{tuple}(false) - scope-43	->	 scope-54
|   |
|   Constant(DummyVal) - scope-42
|
|---New For Each(true,true)[tuple] - scope-53
    |   |
    |   Project[int][0] - scope-26
    |   |
    |   POUserFunc(org.apache.pig.impl.builtin.GetMemNumRows)[tuple] - scope-52
    |   |
    |   |---Project[tuple][*] - scope-51
    |
    |---PoissonSample - scope-44
        |
        |---d: New For Each(false,false)[bag] - scope-7
            |   |
            |   Cast[int] - scope-2
            |   |
            |   |---Project[bytearray][0] - scope-1
            |   |
            |   Cast[chararray] - scope-5
            |   |
            |   |---Project[bytearray][1] - scope-4
            |
            |---d: Load(file:///tmp/input1:org.apache.pig.builtin.PigStorage) - scope-0
Tez vertex scope-54
# Plan on vertex
POValueOutputTez - scope-63	->	 [scope-37, scope-64]
|
|---New For Each(false)[tuple] - scope-62
    |   |
    |   POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.PartitionSkewedKeysTez)[tuple] - scope-61
    |   |
    |   |---Project[tuple][*] - scope-60
    |
    |---New For Each(false,false)[tuple] - scope-59
        |   |
        |   Constant(-1) - scope-58
        |   |
        |   Project[bag][1] - scope-56
        |
        |---Package(Packager)[tuple]{bytearray} - scope-55
Tez vertex scope-64
# Plan on vertex
Local Rearrange[tuple]{int}(false) - scope-41	->	 scope-67
|   |
|   Project[int][0] - scope-26
|
|---d: New For Each(false,false)[bag] - scope-50
    |   |
    |   Cast[int] - scope-47
    |   |
    |   |---Project[bytearray][0] - scope-46
    |   |
    |   Cast[chararray] - scope-49
    |   |
    |   |---Project[bytearray][1] - scope-48
    |
    |---d: Load(file:///tmp/input1:org.apache.pig.builtin.PigStorage) - scope-45
Tez vertex scope-31
# Plan on vertex
a: Split - scope-73
|   |
|   POValueOutputTez - scope-39	->	 [scope-37]
|   |
|   POValueOutputTez - scope-32	->	 [scope-35]
|
|---a: New For Each(false,false)[bag] - scope-15
    |   |
    |   Cast[int] - scope-10
    |   |
    |   |---Project[bytearray][0] - scope-9
    |   |
    |   Cast[chararray] - scope-13
    |   |
    |   |---Project[bytearray][1] - scope-12
    |
    |---a: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-8
Tez vertex scope-35
# Plan on vertex
POValueOutputTez - scope-40	->	 [scope-37]
|
|---b: Filter[bag] - scope-21
    |   |
    |   Equal To[boolean] - scope-24
    |   |
    |   |---Project[int][0] - scope-22
    |   |
    |   |---Constant(2) - scope-23
    |
    |---POValueInputTez - scope-36	<-	 scope-31
Tez vertex scope-37
# Plan on vertex
Partition Rearrange[tuple]{int}(false) - scope-65	->	 scope-67
|   |
|   Project[int][0] - scope-27
|
|---POShuffledValueInputTez - scope-38	<-	 [scope-31, scope-35]
Tez vertex scope-67
# Plan on vertex
e: Store(file:///tmp/pigoutput:org.apache.pig.builtin.PigStorage) - scope-29
|
|---New For Each(true,true)[tuple] - scope-71
    |   |
    |   Project[bag][1] - scope-69
    |   |
    |   Project[bag][2] - scope-70
    |
    |---Package(Packager)[tuple]{int} - scope-68
