#--------------------------------------------------
# There are 1 DAGs in the session
#--------------------------------------------------
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-0
#--------------------------------------------------
Tez vertex scope-16

Tez vertex scope-16
# Plan on vertex
c: Store(file:///tmp/pigoutput:org.apache.pig.builtin.PigStorage) - scope-15
|
|---c: New For Each(false)[bag] - scope-14
    |   |
    |   Project[int][1] - scope-12
    |
    |---b: Filter[bag] - scope-8
        |   |
        |   Greater Than[boolean] - scope-11
        |   |
        |   |---Project[int][0] - scope-9
        |   |
        |   |---Constant(0) - scope-10
        |
        |---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
