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

Tez vertex scope-39
# Plan on vertex
d: BuildBloom Rearrange[tuple]{chararray}(false) - scope-20	->	[ scope-41, scope-42]
|   |
|   Project[chararray][0] - scope-21
|
|---a: New For Each(false,false)[bag] - scope-7
    |   |
    |   Cast[chararray] - 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-42
# Combine plan on edge <scope-39>
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.DistinctCombiner$Combine
# Plan on vertex
POValueOutputTez - scope-44	->	 [scope-40]
|
|---Package(BloomPackager)[tuple]{bytearray} - scope-43
Tez vertex scope-40
# Plan on vertex
d: BloomFilter Rearrange[tuple]{chararray}(false) - scope-22	<-	 scope-42	->	 scope-41
|   |
|   Project[chararray][0] - scope-23
|
|---b: New For Each(false,false)[bag] - scope-15
    |   |
    |   Cast[chararray] - scope-10
    |   |
    |   |---Project[bytearray][0] - scope-9
    |   |
    |   Cast[int] - scope-13
    |   |
    |   |---Project[bytearray][1] - scope-12
    |
    |---b: Load(file:///tmp/input2:org.apache.pig.builtin.PigStorage) - scope-8
Tez vertex scope-41
# Plan on vertex
e: Store(file:///tmp/pigoutput:org.apache.pig.builtin.PigStorage) - scope-38
|
|---e: New For Each(false,false,false)[bag] - scope-37
    |   |
    |   Project[chararray][0] - scope-31
    |   |
    |   Project[int][1] - scope-33
    |   |
    |   Project[int][3] - scope-35
    |
    |---d: New For Each(true,true)[tuple] - scope-30
        |   |
        |   Project[bag][1] - scope-24
        |   |
        |   POBinCond[bag] - scope-29
        |   |
        |   |---Project[bag][2] - scope-25
        |   |
        |   |---POUserFunc(org.apache.pig.builtin.IsEmpty)[boolean] - scope-27
        |   |   |
        |   |   |---Project[bag][2] - scope-26
        |   |
        |   |---Constant({(,)}) - scope-28
        |
        |---d: Package(Packager)[tuple]{chararray} - scope-19
