You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ro...@apache.org on 2017/12/27 22:02:21 UTC
svn commit: r1819369 - in /pig/trunk: ./
src/org/apache/pig/newplan/logical/optimizer/ test/org/apache/pig/test/
test/org/apache/pig/test/data/GoldenFiles/tez/
Author: rohini
Date: Wed Dec 27 22:02:21 2017
New Revision: 1819369
URL: http://svn.apache.org/viewvc?rev=1819369&view=rev
Log:
PIG-5322: ConstantCalculator optimizer is not applied for split (rohini)
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java
pig/trunk/test/org/apache/pig/test/TestConstantCalculator.java
pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6-OPTOFF.gld
pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6.gld
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1819369&r1=1819368&r2=1819369&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Wed Dec 27 22:02:21 2017
@@ -26,6 +26,8 @@ PIG-5282: Upgade to Java 8 (satishsaley
IMPROVEMENTS
+PIG-5322: ConstantCalculator optimizer is not applied for split (rohini)
+
PIG-5316: Initialize mapred.task.id property for PoS jobs (nkollar via szita)
PIG-5302: Remove HttpClient dependency (nkollar via szita)
Modified: pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java?rev=1819369&r1=1819368&r2=1819369&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java Wed Dec 27 22:02:21 2017
@@ -22,10 +22,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.SetMultimap;
-import com.google.common.collect.TreeMultimap;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.pig.impl.PigContext;
@@ -45,11 +41,16 @@ import org.apache.pig.newplan.logical.ru
import org.apache.pig.newplan.logical.rules.PredicatePushdownOptimizer;
import org.apache.pig.newplan.logical.rules.PushDownForEachFlatten;
import org.apache.pig.newplan.logical.rules.PushUpFilter;
+import org.apache.pig.newplan.logical.rules.SplitConstantCalculator;
import org.apache.pig.newplan.logical.rules.SplitFilter;
import org.apache.pig.newplan.logical.rules.StreamTypeCastInserter;
import org.apache.pig.newplan.optimizer.PlanOptimizer;
import org.apache.pig.newplan.optimizer.Rule;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.SetMultimap;
+import com.google.common.collect.TreeMultimap;
+
public class LogicalPlanOptimizer extends PlanOptimizer {
private static final Log LOG = LogFactory.getLog(LogicalPlanOptimizer.class);
private static enum RulesReportKey { RULES_ENABLED, RULES_DISABLED }
@@ -89,10 +90,13 @@ public class LogicalPlanOptimizer extend
// Logical expression simplifier
Set <Rule> s = new HashSet<Rule>();
// add constant calculator rule
- Rule r = new FilterConstantCalculator("ConstantCalculator", pc);
+ Rule r = new FilterConstantCalculator("FilterConstantCalculator", pc);
+ checkAndAddRule(s, r);
+ ls.add(s);
+ r = new ForEachConstantCalculator("ForEachConstantCalculator", pc);
checkAndAddRule(s, r);
ls.add(s);
- r = new ForEachConstantCalculator("ConstantCalculator", pc);
+ r = new SplitConstantCalculator("SplitConstantCalculator", pc);
checkAndAddRule(s, r);
ls.add(s);
Modified: pig/trunk/test/org/apache/pig/test/TestConstantCalculator.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestConstantCalculator.java?rev=1819369&r1=1819368&r2=1819369&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestConstantCalculator.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestConstantCalculator.java Wed Dec 27 22:02:21 2017
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertTru
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -33,13 +34,20 @@ import org.apache.pig.backend.hadoop.dat
import org.apache.pig.data.SchemaTupleBackend;
import org.apache.pig.data.Tuple;
import org.apache.pig.impl.PigContext;
+import org.apache.pig.impl.logicalLayer.FrontendException;
+import org.apache.pig.newplan.Operator;
import org.apache.pig.newplan.OperatorPlan;
+import org.apache.pig.newplan.logical.expression.ConstantExpression;
+import org.apache.pig.newplan.logical.expression.NegativeExpression;
import org.apache.pig.newplan.logical.optimizer.LogicalPlanOptimizer;
+import org.apache.pig.newplan.logical.relational.LOSplitOutput;
import org.apache.pig.newplan.logical.relational.LogicalPlan;
import org.apache.pig.newplan.logical.rules.FilterConstantCalculator;
import org.apache.pig.newplan.logical.rules.ForEachConstantCalculator;
+import org.apache.pig.newplan.logical.rules.SplitConstantCalculator;
import org.apache.pig.newplan.optimizer.PlanOptimizer;
import org.apache.pig.newplan.optimizer.Rule;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -54,6 +62,7 @@ public class TestConstantCalculator {
SchemaTupleBackend.initialize(ConfigurationUtil.toConfiguration(pc.getProperties(), true),
pc);
}
+
@Test
public void test() throws Exception {
// pure simple constant
@@ -105,6 +114,36 @@ public class TestConstantCalculator {
"store b into 'empty';");
}
+ @Test
+ public void testSplit() throws Exception {
+ // calculation inside split
+ LogicalPlan plan = getOptimizedLogicalPlan("a = load 'd.txt' as (x:long);" +
+ "split a into b if x == -2L, c otherwise;" +
+ "store b into 'empty';" +
+ "store c into 'empty1';");
+
+ List<ConstantExpression> constantOps = new ArrayList<>();
+ Iterator<Operator> operators = plan.getOperators();
+ while (operators.hasNext()) {
+ Operator splitOp = operators.next();
+ if (splitOp instanceof LOSplitOutput) {
+ Iterator<Operator> splitOperators = ((LOSplitOutput)splitOp).getFilterPlan().getOperators();
+ while (splitOperators.hasNext()) {
+ Operator op = splitOperators.next();
+ if (op instanceof ConstantExpression) {
+ constantOps.add((ConstantExpression)op);
+ } else if (op instanceof NegativeExpression) {
+ Assert.fail("Found NegativeExpression which should have been optimized");
+ }
+ }
+ }
+
+ }
+ Assert.assertEquals(2, constantOps.size());
+ Assert.assertEquals(new Long(-2L), constantOps.get(0).getValue());
+ Assert.assertEquals(new Long(-2L), constantOps.get(1).getValue());
+ }
+
public static class NoCalc extends EvalFunc<String> {
@Override
public String exec(Tuple input) throws IOException {
@@ -124,17 +163,23 @@ public class TestConstantCalculator {
}
private void assertQuerySame(String origQuery, String optimizedQuery) throws Exception {
+ LogicalPlan newLogicalPlan = getOptimizedLogicalPlan(origQuery);
+
+ LogicalPlan expected = Util.buildLp(pigServer, optimizedQuery);
+
+ assertTrue(expected.isEqual(newLogicalPlan));
+
+ }
+
+ private LogicalPlan getOptimizedLogicalPlan(String origQuery)
+ throws Exception, IOException, FrontendException {
LogicalPlan newLogicalPlan = Util.buildLp(pigServer, origQuery);
SchemaTupleBackend.initialize(ConfigurationUtil.toConfiguration(pc.getProperties(), true),
pc);
PlanOptimizer optimizer = new MyPlanOptimizer(newLogicalPlan, 10);
optimizer.optimize();
-
- LogicalPlan expected = Util.buildLp(pigServer, optimizedQuery);
-
- assertTrue(expected.isEqual(newLogicalPlan));
-
+ return newLogicalPlan;
}
public class MyPlanOptimizer extends LogicalPlanOptimizer {
@@ -143,6 +188,7 @@ public class TestConstantCalculator {
super(p, iterations, null);
}
+ @Override
protected List<Set<Rule>> buildRuleSets() {
List<Set<Rule>> ls = new ArrayList<Set<Rule>>();
@@ -154,6 +200,9 @@ public class TestConstantCalculator {
r = new ForEachConstantCalculator("ForEachConstantCalculator", pc);
s.add(r);
ls.add(s);
+ r = new SplitConstantCalculator("SplitConstantCalculator", pc);
+ s.add(r);
+ ls.add(s);
return ls;
}
Modified: pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6-OPTOFF.gld
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6-OPTOFF.gld?rev=1819369&r1=1819368&r2=1819369&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6-OPTOFF.gld (original)
+++ pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6-OPTOFF.gld Wed Dec 27 22:02:21 2017
@@ -4,122 +4,118 @@
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-0
#--------------------------------------------------
-Tez vertex scope-48 -> Tez vertex scope-50,Tez vertex scope-53,
-Tez vertex scope-53 -> Tez vertex scope-56,Tez vertex scope-58,
-Tez vertex scope-50 -> Tez vertex scope-52,
-Tez vertex scope-52 -> Tez vertex scope-56,Tez vertex scope-58,
-Tez vertex scope-56
+Tez vertex scope-50 -> Tez vertex scope-52,Tez vertex scope-55,
+Tez vertex scope-55 -> Tez vertex scope-58,Tez vertex scope-60,
+Tez vertex scope-52 -> Tez vertex scope-54,
+Tez vertex scope-54 -> Tez vertex scope-58,Tez vertex scope-60,
Tez vertex scope-58
+Tez vertex scope-60
-Tez vertex scope-48
+Tez vertex scope-50
# Plan on vertex
-POValueOutputTez - scope-49 -> [scope-50, scope-53]
+POValueOutputTez - scope-51 -> [scope-52, scope-55]
|
-|---a: New For Each(false,false)[bag] - scope-7
+|---a: New For Each(false,false)[bag] - scope-11
| |
- | Cast[int] - scope-2
+ | Cast[int] - scope-6
| |
- | |---Project[bytearray][0] - scope-1
+ | |---Project[bytearray][0] - scope-5
| |
- | Cast[int] - scope-5
+ | Cast[int] - scope-9
| |
- | |---Project[bytearray][1] - scope-4
+ | |---Project[bytearray][1] - scope-8
|
- |---a: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-0
-Tez vertex scope-53
+ |---a: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-4
+Tez vertex scope-55
# Plan on vertex
-POValueOutputTez - scope-55 -> [scope-56, scope-58]
+POValueOutputTez - scope-57 -> [scope-58, scope-60]
|
-|---POValueInputTez - scope-54 <- scope-48
-Tez vertex scope-50
+|---POValueInputTez - scope-56 <- scope-50
+Tez vertex scope-52
# Plan on vertex
-b: Local Rearrange[tuple]{int}(false) - scope-72 -> scope-52
+b: Local Rearrange[tuple]{int}(false) - scope-74 -> scope-54
| |
-| Project[int][0] - scope-74
+| Project[int][0] - scope-76
|
-|---c: New For Each(false,false)[bag] - scope-61
+|---c: New For Each(false,false)[bag] - scope-63
| |
- | Project[int][0] - scope-62
+ | Project[int][0] - scope-64
| |
- | POUserFunc(org.apache.pig.builtin.COUNT$Initial)[tuple] - scope-63
+ | POUserFunc(org.apache.pig.builtin.COUNT$Initial)[tuple] - scope-65
| |
- | |---Project[bag][1] - scope-64
+ | |---Project[bag][1] - scope-66
|
- |---Pre Combiner Local Rearrange[tuple]{Unknown} - scope-75
+ |---Pre Combiner Local Rearrange[tuple]{Unknown} - scope-77
|
- |---POValueInputTez - scope-51 <- scope-48
-Tez vertex scope-52
-# Combine plan on edge <scope-50>
-b: Local Rearrange[tuple]{int}(false) - scope-76 -> scope-52
+ |---POValueInputTez - scope-53 <- scope-50
+Tez vertex scope-54
+# Combine plan on edge <scope-52>
+b: Local Rearrange[tuple]{int}(false) - scope-78 -> scope-54
| |
-| Project[int][0] - scope-78
+| Project[int][0] - scope-80
|
-|---c: New For Each(false,false)[bag] - scope-65
+|---c: New For Each(false,false)[bag] - scope-67
| |
- | Project[int][0] - scope-66
+ | Project[int][0] - scope-68
| |
- | POUserFunc(org.apache.pig.builtin.COUNT$Intermediate)[tuple] - scope-67
+ | POUserFunc(org.apache.pig.builtin.COUNT$Intermediate)[tuple] - scope-69
| |
- | |---Project[bag][1] - scope-68
+ | |---Project[bag][1] - scope-70
|
- |---b: Package(CombinerPackager)[tuple]{int} - scope-71
+ |---b: Package(CombinerPackager)[tuple]{int} - scope-73
# Plan on vertex
-POValueOutputTez - scope-60 -> [scope-56, scope-58]
+POValueOutputTez - scope-62 -> [scope-58, scope-60]
|
-|---c: New For Each(false,false)[bag] - scope-23
+|---c: New For Each(false,false)[bag] - scope-27
| |
- | Project[int][0] - scope-18
+ | Project[int][0] - scope-22
| |
- | POUserFunc(org.apache.pig.builtin.COUNT$Final)[long] - scope-21
+ | POUserFunc(org.apache.pig.builtin.COUNT$Final)[long] - scope-25
| |
- | |---Project[bag][1] - scope-69
+ | |---Project[bag][1] - scope-71
|
- |---b: Package(CombinerPackager)[tuple]{int} - scope-15
-Tez vertex scope-56
+ |---b: Package(CombinerPackager)[tuple]{int} - scope-19
+Tez vertex scope-58
# Plan on vertex
-d: Store(file:///tmp/pigoutput1:org.apache.pig.builtin.PigStorage) - scope-35
+d: Store(file:///tmp/pigoutput1:org.apache.pig.builtin.PigStorage) - scope-38
|
-|---d: Filter[bag] - scope-25
+|---d: Filter[bag] - scope-29
| |
- | Less Than[boolean] - scope-34
+ | Less Than[boolean] - scope-37
| |
- | |---Multiply[long] - scope-31
+ | |---Multiply[long] - scope-34
| | |
- | | |---Cast[long] - scope-27
- | | | |
- | | | |---Constant(2) - scope-26
+ | | |---Constant(2) - scope-30
| | |
- | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-30
+ | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-33
| | |
- | | |---Constant(1) - scope-28
+ | | |---Constant(1) - scope-31
| |
- | |---Cast[long] - scope-33
+ | |---Cast[long] - scope-36
| |
- | |---Project[int][1] - scope-32
+ | |---Project[int][1] - scope-35
|
- |---POValueInputTez - scope-57 <- scope-53
-Tez vertex scope-58
+ |---POValueInputTez - scope-59 <- scope-55
+Tez vertex scope-60
# Plan on vertex
-e: Store(file:///tmp/pigoutput2:org.apache.pig.builtin.PigStorage) - scope-47
+e: Store(file:///tmp/pigoutput2:org.apache.pig.builtin.PigStorage) - scope-49
|
-|---e: Filter[bag] - scope-36
+|---e: Filter[bag] - scope-39
| |
- | Not[boolean] - scope-46
+ | Not[boolean] - scope-48
| |
- | |---Less Than[boolean] - scope-45
+ | |---Less Than[boolean] - scope-47
| |
- | |---Multiply[long] - scope-42
+ | |---Multiply[long] - scope-44
| | |
- | | |---Cast[long] - scope-38
- | | | |
- | | | |---Constant(2) - scope-37
+ | | |---Constant(2) - scope-40
| | |
- | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-41
+ | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-43
| | |
- | | |---Constant(1) - scope-39
+ | | |---Constant(1) - scope-41
| |
- | |---Cast[long] - scope-44
+ | |---Cast[long] - scope-46
| |
- | |---Project[int][1] - scope-43
+ | |---Project[int][1] - scope-45
|
- |---POValueInputTez - scope-59 <- scope-53
+ |---POValueInputTez - scope-61 <- scope-55
Modified: pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6.gld
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6.gld?rev=1819369&r1=1819368&r2=1819369&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6.gld (original)
+++ pig/trunk/test/org/apache/pig/test/data/GoldenFiles/tez/TEZC-MQ-6.gld Wed Dec 27 22:02:21 2017
@@ -4,118 +4,114 @@
#--------------------------------------------------
# TEZ DAG plan: pig-0_scope-0
#--------------------------------------------------
-Tez vertex scope-48 -> Tez vertex scope-52,Tez vertex scope-53,
-Tez vertex scope-52 -> Tez vertex scope-53,Tez vertex scope-58,
-Tez vertex scope-53 -> Tez vertex scope-58,
-Tez vertex scope-58
+Tez vertex scope-50 -> Tez vertex scope-54,Tez vertex scope-55,
+Tez vertex scope-54 -> Tez vertex scope-55,Tez vertex scope-60,
+Tez vertex scope-55 -> Tez vertex scope-60,
+Tez vertex scope-60
-Tez vertex scope-48
+Tez vertex scope-50
# Plan on vertex
-a: Split - scope-80
+a: Split - scope-82
| |
-| b: Local Rearrange[tuple]{int}(false) - scope-72 -> scope-52
+| b: Local Rearrange[tuple]{int}(false) - scope-74 -> scope-54
| | |
-| | Project[int][0] - scope-74
+| | Project[int][0] - scope-76
| |
-| |---c: New For Each(false,false)[bag] - scope-61
+| |---c: New For Each(false,false)[bag] - scope-63
| | |
-| | Project[int][0] - scope-62
+| | Project[int][0] - scope-64
| | |
-| | POUserFunc(org.apache.pig.builtin.COUNT$Initial)[tuple] - scope-63
+| | POUserFunc(org.apache.pig.builtin.COUNT$Initial)[tuple] - scope-65
| | |
-| | |---Project[bag][1] - scope-64
+| | |---Project[bag][1] - scope-66
| |
-| |---Pre Combiner Local Rearrange[tuple]{Unknown} - scope-75
+| |---Pre Combiner Local Rearrange[tuple]{Unknown} - scope-77
| |
-| POValueOutputTez - scope-49 -> [scope-53]
+| POValueOutputTez - scope-51 -> [scope-55]
|
-|---a: New For Each(false,false)[bag] - scope-7
+|---a: New For Each(false,false)[bag] - scope-11
| |
- | Cast[int] - scope-2
+ | Cast[int] - scope-6
| |
- | |---Project[bytearray][0] - scope-1
+ | |---Project[bytearray][0] - scope-5
| |
- | Cast[int] - scope-5
+ | Cast[int] - scope-9
| |
- | |---Project[bytearray][1] - scope-4
+ | |---Project[bytearray][1] - scope-8
|
- |---a: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-0
-Tez vertex scope-52
-# Combine plan on edge <scope-48>
-b: Local Rearrange[tuple]{int}(false) - scope-76 -> scope-52
+ |---a: Load(file:///tmp/input:org.apache.pig.builtin.PigStorage) - scope-4
+Tez vertex scope-54
+# Combine plan on edge <scope-50>
+b: Local Rearrange[tuple]{int}(false) - scope-78 -> scope-54
| |
-| Project[int][0] - scope-78
+| Project[int][0] - scope-80
|
-|---c: New For Each(false,false)[bag] - scope-65
+|---c: New For Each(false,false)[bag] - scope-67
| |
- | Project[int][0] - scope-66
+ | Project[int][0] - scope-68
| |
- | POUserFunc(org.apache.pig.builtin.COUNT$Intermediate)[tuple] - scope-67
+ | POUserFunc(org.apache.pig.builtin.COUNT$Intermediate)[tuple] - scope-69
| |
- | |---Project[bag][1] - scope-68
+ | |---Project[bag][1] - scope-70
|
- |---b: Package(CombinerPackager)[tuple]{int} - scope-71
+ |---b: Package(CombinerPackager)[tuple]{int} - scope-73
# Plan on vertex
-POValueOutputTez - scope-60 -> [scope-53, scope-58]
+POValueOutputTez - scope-62 -> [scope-55, scope-60]
|
-|---c: New For Each(false,false)[bag] - scope-23
+|---c: New For Each(false,false)[bag] - scope-27
| |
- | Project[int][0] - scope-18
+ | Project[int][0] - scope-22
| |
- | POUserFunc(org.apache.pig.builtin.COUNT$Final)[long] - scope-21
+ | POUserFunc(org.apache.pig.builtin.COUNT$Final)[long] - scope-25
| |
- | |---Project[bag][1] - scope-69
+ | |---Project[bag][1] - scope-71
|
- |---b: Package(CombinerPackager)[tuple]{int} - scope-15
-Tez vertex scope-53
+ |---b: Package(CombinerPackager)[tuple]{int} - scope-19
+Tez vertex scope-55
# Plan on vertex
-1-1: Split - scope-79
+1-1: Split - scope-81
| |
-| d: Store(file:///tmp/pigoutput1:org.apache.pig.builtin.PigStorage) - scope-35
+| d: Store(file:///tmp/pigoutput1:org.apache.pig.builtin.PigStorage) - scope-38
| |
-| |---d: Filter[bag] - scope-25
+| |---d: Filter[bag] - scope-29
| | |
-| | Less Than[boolean] - scope-34
+| | Less Than[boolean] - scope-37
| | |
-| | |---Multiply[long] - scope-31
+| | |---Multiply[long] - scope-34
| | | |
-| | | |---Cast[long] - scope-27
-| | | | |
-| | | | |---Constant(2) - scope-26
+| | | |---Constant(2) - scope-30
| | | |
-| | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-30
+| | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-33
| | | |
-| | | |---Constant(1) - scope-28
+| | | |---Constant(1) - scope-31
| | |
-| | |---Cast[long] - scope-33
+| | |---Cast[long] - scope-36
| | |
-| | |---Project[int][1] - scope-32
+| | |---Project[int][1] - scope-35
| |
-| POValueOutputTez - scope-55 -> [scope-58]
+| POValueOutputTez - scope-57 -> [scope-60]
|
-|---POValueInputTez - scope-54 <- scope-48
-Tez vertex scope-58
+|---POValueInputTez - scope-56 <- scope-50
+Tez vertex scope-60
# Plan on vertex
-e: Store(file:///tmp/pigoutput2:org.apache.pig.builtin.PigStorage) - scope-47
+e: Store(file:///tmp/pigoutput2:org.apache.pig.builtin.PigStorage) - scope-49
|
-|---e: Filter[bag] - scope-36
+|---e: Filter[bag] - scope-39
| |
- | Not[boolean] - scope-46
+ | Not[boolean] - scope-48
| |
- | |---Less Than[boolean] - scope-45
+ | |---Less Than[boolean] - scope-47
| |
- | |---Multiply[long] - scope-42
+ | |---Multiply[long] - scope-44
| | |
- | | |---Cast[long] - scope-38
- | | | |
- | | | |---Constant(2) - scope-37
+ | | |---Constant(2) - scope-40
| | |
- | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-41
+ | | |---POUserFunc(org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez)[long] - scope-43
| | |
- | | |---Constant(1) - scope-39
+ | | |---Constant(1) - scope-41
| |
- | |---Cast[long] - scope-44
+ | |---Cast[long] - scope-46
| |
- | |---Project[int][1] - scope-43
+ | |---Project[int][1] - scope-45
|
- |---POValueInputTez - scope-59 <- scope-53
+ |---POValueInputTez - scope-61 <- scope-55