#--------------------------------------------------
# There are 1 DAGs in the session
#--------------------------------------------------
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-1
#--------------------------------------------------
Tez vertex scope-114	->	Tez vertex scope-116,
Tez vertex scope-115	->	Tez vertex scope-116,
Tez vertex scope-116	->	Tez vertex scope-128,Tez vertex scope-138,
Tez vertex scope-128	->	Tez vertex scope-120,Tez vertex scope-138,
Tez vertex scope-138	->	Tez vertex scope-142,
Tez vertex scope-120	->	Tez vertex scope-142,
Tez vertex scope-142

Tez vertex scope-114
# Plan on vertex
POValueOutputTez - scope-118	->	 [scope-116]
|
|---a: New For Each(false,false)[bag] - scope-92
    |   |
    |   Cast[int] - scope-87
    |   |
    |   |---Project[bytearray][0] - scope-86
    |   |
    |   Cast[chararray] - scope-90
    |   |
    |   |---Project[bytearray][1] - scope-89
    |
    |---a: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-85
Tez vertex scope-115
# Plan on vertex
POValueOutputTez - scope-119	->	 [scope-116]
|
|---c: New For Each(false,false)[bag] - scope-100
    |   |
    |   Cast[int] - scope-95
    |   |
    |   |---Project[bytearray][1] - scope-94
    |   |
    |   Cast[chararray] - scope-98
    |   |
    |   |---Project[bytearray][0] - scope-97
    |
    |---b: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-93
Tez vertex scope-116
# Plan on vertex
Local Rearrange[tuple]{tuple}(false) - scope-123	->	 scope-128
|   |
|   Constant(DummyVal) - scope-122
|
|---New For Each(true,true)[tuple] - scope-127
    |   |
    |   Project[int][0] - scope-110
    |   |
    |   POUserFunc(org.apache.pig.impl.builtin.GetMemNumRows)[tuple] - scope-126
    |   |
    |   |---Project[tuple][*] - scope-125
    |
    |---PoissonSample - scope-124
        |
        |---Local Rearrange[tuple]{int}(false) - scope-121	->	 scope-138
            |   |
            |   Project[int][0] - scope-110
            |
            |---POShuffledValueInputTez - scope-117	<-	 [scope-114, scope-115]
Tez vertex scope-128
# Plan on vertex
POValueOutputTez - scope-137	->	 [scope-120, scope-138]
|
|---New For Each(false)[tuple] - scope-136
    |   |
    |   POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.PartitionSkewedKeysTez)[tuple] - scope-135
    |   |
    |   |---Project[tuple][*] - scope-134
    |
    |---New For Each(false,false)[tuple] - scope-133
        |   |
        |   Constant(-1) - scope-132
        |   |
        |   Project[bag][1] - scope-130
        |
        |---Package(Packager)[tuple]{bytearray} - scope-129
Tez vertex scope-138
# Plan on vertex
POIdentityInOutTez - scope-139	<-	 scope-116	->	 scope-142
|   |
|   Project[int][0] - scope-110
Tez vertex scope-120
# Plan on vertex
Partition Rearrange[tuple]{int}(false) - scope-140	->	 scope-142
|   |
|   Project[int][0] - scope-111
|
|---d: New For Each(false,false)[bag] - scope-109
    |   |
    |   Cast[int] - scope-104
    |   |
    |   |---Project[bytearray][0] - scope-103
    |   |
    |   Cast[chararray] - scope-107
    |   |
    |   |---Project[bytearray][1] - scope-106
    |
    |---d: Load(file:///tmp/input1:org.apache.pig.builtin.PigStorage) - scope-102
Tez vertex scope-142
# Plan on vertex
e: Store(file:///tmp/pigoutput:org.apache.pig.builtin.PigStorage) - scope-113
|
|---New For Each(true,true)[tuple] - scope-146
    |   |
    |   Project[bag][1] - scope-144
    |   |
    |   Project[bag][2] - scope-145
    |
    |---Package(Packager)[tuple]{int} - scope-143
