Examples of LOJoin


Examples of org.apache.pig.impl.logicalLayer.LOJoin

    @Test
    public void testQueryFRJoinWithMixedSchema(){
        String query = "c = join (load 'a' as (url, hitcount)) by $0, (load 'b') by $0 using \"replicated\";";
        LogicalPlan lp = planTester.buildPlan(query);

        LOJoin frjoin = (LOJoin)lp.getLeaves().get(0);
        RequiredFields frjoinRelevantFields0 = frjoin.getRelevantInputs(0, 0).get(0);
        assertTrue(frjoinRelevantFields0.getNeedAllFields() == false);
        assertTrue(frjoinRelevantFields0.getNeedNoFields() == false);
        assertTrue(frjoinRelevantFields0.getFields().size() == 1);
        assertTrue(frjoinRelevantFields0.getFields().get(0).first == 0);
        assertTrue(frjoinRelevantFields0.getFields().get(0).second == 0);
       
        RequiredFields frjoinRelevantFields1 = frjoin.getRelevantInputs(0, 1).get(0);
        assertTrue(frjoinRelevantFields1.getNeedAllFields() == false);
        assertTrue(frjoinRelevantFields1.getNeedNoFields() == false);
        assertTrue(frjoinRelevantFields1.getFields().size() == 1);
        assertTrue(frjoinRelevantFields1.getFields().get(0).first == 0);
        assertTrue(frjoinRelevantFields1.getFields().get(0).second == 1);
       
        assertTrue(frjoin.getRelevantInputs(0, 2)==null);
    }
View Full Code Here

Examples of org.apache.pig.impl.logicalLayer.LOJoin

    @Test
    public void testQueryJoinWithMixedSchema(){
        String query = "c = join (load 'a' as (url, hitcount)) by $0, (load 'b') by $0;";
        LogicalPlan lp = planTester.buildPlan(query);

        LOJoin join = (LOJoin)lp.getLeaves().get(0);
        RequiredFields joinRelevantFields0 = join.getRelevantInputs(0, 0).get(0);
        assertTrue(joinRelevantFields0.getNeedAllFields() == false);
        assertTrue(joinRelevantFields0.getNeedNoFields() == false);
        assertTrue(joinRelevantFields0.getFields().size() == 1);
        assertTrue(joinRelevantFields0.getFields().get(0).first == 0);
        assertTrue(joinRelevantFields0.getFields().get(0).second == 0);
       
        RequiredFields joinRelevantFields1 = join.getRelevantInputs(0, 1).get(0);
        assertTrue(joinRelevantFields1.getNeedAllFields() == false);
        assertTrue(joinRelevantFields1.getNeedNoFields() == false);
        assertTrue(joinRelevantFields1.getFields().size() == 1);
        assertTrue(joinRelevantFields1.getFields().get(0).first == 0);
        assertTrue(joinRelevantFields1.getFields().get(0).second == 1);
       
        assertTrue(join.getRelevantInputs(0, 2)==null);
    }
View Full Code Here

Examples of org.apache.pig.impl.logicalLayer.LOJoin

    @Test
    public void testQueryFRJoinOnStarNoSchema(){
        String query = "c = join (load 'a') by *, (load 'b') by * using \"replicated\";";
        LogicalPlan lp = planTester.buildPlan(query);

        LOJoin frjoin = (LOJoin)lp.getLeaves().get(0);
        assertTrue(frjoin.getRelevantInputs(0, 0) == null);
    }
View Full Code Here

Examples of org.apache.pig.impl.logicalLayer.LOJoin

    @Test
    public void testQueryJoinOnStarNoSchema(){
        String query = "c = join (load 'a') by *, (load 'b') by *;";
        LogicalPlan lp = planTester.buildPlan(query);

        LOJoin join = (LOJoin)lp.getLeaves().get(0);
        assertTrue(join.getRelevantInputs(0, 0) == null);
    }
View Full Code Here

Examples of org.apache.pig.impl.logicalLayer.LOJoin

    @Test
    public void testQueryFRJoinOnStarWithSchema(){
        String query = "c = join (load 'a' as (url, hitcount)) by *, (load 'b' as (url, rank)) by * using \"replicated\";";
        LogicalPlan lp = planTester.buildPlan(query);

        LOJoin frjoin = (LOJoin)lp.getLeaves().get(0);
        RequiredFields frjoinRelevantFields0 = frjoin.getRelevantInputs(0, 0).get(0);
        assertTrue(frjoinRelevantFields0.getNeedAllFields() == false);
        assertTrue(frjoinRelevantFields0.getNeedNoFields() == false);
        assertTrue(frjoinRelevantFields0.getFields().size() == 1);
        assertTrue(frjoinRelevantFields0.getFields().get(0).first == 0);
        assertTrue(frjoinRelevantFields0.getFields().get(0).second == 0);
       
        assertTrue(frjoin.getRelevantInputs(0, 0).get(1)==null);
       
        RequiredFields frjoinRelevantFields1 = frjoin.getRelevantInputs(0, 1).get(0);
        assertTrue(frjoinRelevantFields1.getNeedAllFields() == false);
        assertTrue(frjoinRelevantFields1.getNeedNoFields() == false);
        assertTrue(frjoinRelevantFields1.getFields().size() == 1);
        assertTrue(frjoinRelevantFields1.getFields().get(0).first == 0);
        assertTrue(frjoinRelevantFields1.getFields().get(0).second == 1);
       
        assertTrue(frjoin.getRelevantInputs(0, 1).get(1)==null);
       
        RequiredFields frjoinRelevantFields2 = frjoin.getRelevantInputs(0, 2).get(1);
        assertTrue(frjoinRelevantFields2.getNeedAllFields() == false);
        assertTrue(frjoinRelevantFields2.getNeedNoFields() == false);
        assertTrue(frjoinRelevantFields2.getFields().size() == 1);
        assertTrue(frjoinRelevantFields2.getFields().get(0).first == 1);
        assertTrue(frjoinRelevantFields2.getFields().get(0).second == 0);
       
        assertTrue(frjoin.getRelevantInputs(0, 2).get(0)==null);
       
        RequiredFields frjoinRelevantFields3 = frjoin.getRelevantInputs(0, 3).get(1);
        assertTrue(frjoinRelevantFields3.getNeedAllFields() == false);
        assertTrue(frjoinRelevantFields3.getNeedNoFields() == false);
        assertTrue(frjoinRelevantFields3.getFields().size() == 1);
        assertTrue(frjoinRelevantFields3.getFields().get(0).first == 1);
        assertTrue(frjoinRelevantFields3.getFields().get(0).second == 1);
       
        assertTrue(frjoin.getRelevantInputs(0, 3).get(0)==null);
       
        assertTrue(frjoin.getRelevantInputs(0, 4)==null);
    }
View Full Code Here

Examples of org.apache.pig.impl.logicalLayer.LOJoin

    @Test
    public void testQueryJoinOnStarWithSchema(){
        String query = "c = join (load 'a' as (url, hitcount)) by *, (load 'b' as (url, rank)) by *;";
        LogicalPlan lp = planTester.buildPlan(query);

        LOJoin join = (LOJoin)lp.getLeaves().get(0);
        RequiredFields joinRelevantFields0 = join.getRelevantInputs(0, 0).get(0);
        assertTrue(joinRelevantFields0.getNeedAllFields() == false);
        assertTrue(joinRelevantFields0.getNeedNoFields() == false);
        assertTrue(joinRelevantFields0.getFields().size() == 1);
        assertTrue(joinRelevantFields0.getFields().get(0).first == 0);
        assertTrue(joinRelevantFields0.getFields().get(0).second == 0);
       
        assertTrue(join.getRelevantInputs(0, 0).get(1)==null);
       
        RequiredFields joinRelevantFields1 = join.getRelevantInputs(0, 1).get(0);
        assertTrue(joinRelevantFields1.getNeedAllFields() == false);
        assertTrue(joinRelevantFields1.getNeedNoFields() == false);
        assertTrue(joinRelevantFields1.getFields().size() == 1);
        assertTrue(joinRelevantFields1.getFields().get(0).first == 0);
        assertTrue(joinRelevantFields1.getFields().get(0).second == 1);
       
        assertTrue(join.getRelevantInputs(0, 1).get(1)==null);
       
        RequiredFields joinRelevantFields2 = join.getRelevantInputs(0, 2).get(1);
        assertTrue(joinRelevantFields2.getNeedAllFields() == false);
        assertTrue(joinRelevantFields2.getNeedNoFields() == false);
        assertTrue(joinRelevantFields2.getFields().size() == 1);
        assertTrue(joinRelevantFields2.getFields().get(0).first == 1);
        assertTrue(joinRelevantFields2.getFields().get(0).second == 0);
       
        assertTrue(join.getRelevantInputs(0, 2).get(0)==null);
       
        RequiredFields joinRelevantFields3 = join.getRelevantInputs(0, 3).get(1);
        assertTrue(joinRelevantFields3.getNeedAllFields() == false);
        assertTrue(joinRelevantFields3.getNeedNoFields() == false);
        assertTrue(joinRelevantFields3.getFields().size() == 1);
        assertTrue(joinRelevantFields3.getFields().get(0).first == 1);
        assertTrue(joinRelevantFields3.getFields().get(0).second == 1);
       
        assertTrue(join.getRelevantInputs(0, 3).get(0)==null);
       
        assertTrue(join.getRelevantInputs(0, 4)==null);
    }
View Full Code Here

Examples of org.apache.pig.newplan.logical.relational.LOJoin

                    return false;
               
                if( succ instanceof LOCross ) {
                    return true;
                } else {
                    LOJoin join = (LOJoin)succ;
                    for( int i = 0; i < preds.size(); i++ ) {
                        Operator op = preds.get( i );
                        if( op == foreach ) {
                            Collection<LogicalExpressionPlan> exprs = join.getJoinPlan( i );
                            for( LogicalExpressionPlan expr : exprs ) {
                                List<ProjectExpression> projs = getProjectExpressions( expr );
                                for( ProjectExpression proj : projs ) {
                                    if( !uids.contains( proj.getFieldSchema().uid ) ) {
                                        return false;
View Full Code Here

Examples of org.apache.pig.newplan.logical.relational.LOJoin

          cschema.addField(new LogicalSchema.LogicalFieldSchema(
              "b", null, DataType.BYTEARRAY));
          MultiMap<Integer, LogicalExpressionPlan> mm =
                new MultiMap<Integer, LogicalExpressionPlan>();
          LogicalExpressionPlan aprojplan = new LogicalExpressionPlan();
          LOJoin C = new LOJoin(lp, mm, JOINTYPE.HASH, new boolean[] {true, true});
          new ProjectExpression(aprojplan, 0, 0, C);
          LogicalExpressionPlan bprojplan = new LogicalExpressionPlan();
          new ProjectExpression(bprojplan, 1, 0, C);
          mm.put(0, aprojplan);
          mm.put(1, bprojplan);
         
          C.setAlias("C");
          lp.add(C);
          lp.connect(A, C);
          lp.connect(B, C);
       
          // D = filter
          LogicalExpressionPlan filterPlan = new LogicalExpressionPlan();
          LOFilter D = new LOFilter(lp, filterPlan);
          ProjectExpression fx = new ProjectExpression(filterPlan, 0, 0, D);
          ConstantExpression fc0 = new ConstantExpression(filterPlan, new Integer(0), new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          EqualExpression eq1 = new EqualExpression(filterPlan, fx, fc0);
          ProjectExpression fanotherx = new ProjectExpression(filterPlan, 0, 0, D);
          ProjectExpression fa = new ProjectExpression(filterPlan, 0, 2, D);
          EqualExpression eq2 = new EqualExpression(filterPlan, fanotherx, fa);
          AndExpression and1 = new AndExpression(filterPlan, eq1, eq2);
          ProjectExpression fb = new ProjectExpression(filterPlan, 0, 3, D);
          ConstantExpression fc1 = new ConstantExpression(filterPlan, new Integer(1),new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          EqualExpression eq3 = new EqualExpression(filterPlan, fb, fc1);
          AndExpression and2 = new AndExpression(filterPlan, and1, eq3);
          ProjectExpression fanotherb = new ProjectExpression(filterPlan, 0, 3, D);
          ProjectExpression fy = new ProjectExpression(filterPlan, 0, 1, D);
          EqualExpression eq4 = new EqualExpression(filterPlan, fy, fanotherb);
          new AndExpression(filterPlan, and2, eq4);
         
          D.setAlias("D");
          // Connect D to B, since the transform has happened.
          lp.add(D);
          lp.connect(C, D);
        }
       
        System.out.println(lp);
        LogicalPlanOptimizer optimizer = new LogicalPlanOptimizer(lp, 500, null);
        optimizer.optimize();
       
        LogicalPlan expected = new LogicalPlan();
        {
            // A = load
          LogicalSchema aschema = new LogicalSchema();
          aschema.addField(new LogicalSchema.LogicalFieldSchema(
              "x", null, DataType.BYTEARRAY));
          aschema.addField(new LogicalSchema.LogicalFieldSchema(
              "y", null, DataType.BYTEARRAY));
          LOLoad A = new LOLoad(new FileSpec("bla", new FuncSpec("PigStorage", "\t")), aschema, expected, null);
          expected.add(A);
         
          // DA = filter
          LogicalExpressionPlan DAfilterPlan = new LogicalExpressionPlan();
          LOFilter DA = new LOFilter(expected, DAfilterPlan);
          ProjectExpression fx = new ProjectExpression(DAfilterPlan, 0, 0, DA);
          fx.neverUseForRealSetFieldSchema(new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          ConstantExpression fc0 = new ConstantExpression(DAfilterPlan, new Integer(0), new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          new EqualExpression(DAfilterPlan, fx, fc0);
         
          DA.neverUseForRealSetSchema(aschema);
          expected.add(DA);
          expected.connect(A, DA);
         
          // B = load
          LogicalSchema bschema = new LogicalSchema();
          bschema.addField(new LogicalSchema.LogicalFieldSchema(
              "a", null, DataType.BYTEARRAY));
          bschema.addField(new LogicalSchema.LogicalFieldSchema(
              "b", null, DataType.BYTEARRAY));
          LOLoad B = new LOLoad(new FileSpec("morebla", new FuncSpec("PigStorage", "\t")), bschema, expected, null);
          expected.add(B);
         
          // DB = filter
          LogicalExpressionPlan DBfilterPlan = new LogicalExpressionPlan();
            LOFilter DB = new LOFilter(expected, DBfilterPlan);
          ProjectExpression fb = new ProjectExpression(DBfilterPlan, 0, 1, DB);
          fb.neverUseForRealSetFieldSchema(new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          ConstantExpression fc1 = new ConstantExpression(DBfilterPlan, new Integer(1), new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          new EqualExpression(DBfilterPlan, fb, fc1);

          DB.neverUseForRealSetSchema(bschema);
          expected.add(DB);
          expected.connect(B, DB);
         
          // C = join
          LogicalSchema cschema = new LogicalSchema();
          cschema.addField(new LogicalSchema.LogicalFieldSchema(
              "D::x", null, DataType.BYTEARRAY));
          cschema.addField(new LogicalSchema.LogicalFieldSchema(
              "D::y", null, DataType.BYTEARRAY));
          cschema.addField(new LogicalSchema.LogicalFieldSchema(
              "null::a", null, DataType.BYTEARRAY));
          cschema.addField(new LogicalSchema.LogicalFieldSchema(
              "null::b", null, DataType.BYTEARRAY));
          cschema.getField(0).uid = 1;
          cschema.getField(1).uid = 2;
          cschema.getField(2).uid = 3;
          cschema.getField(3).uid = 4;
          LogicalExpressionPlan aprojplan = new LogicalExpressionPlan();
            MultiMap<Integer, LogicalExpressionPlan> mm =
                new MultiMap<Integer, LogicalExpressionPlan>();
            LOJoin C = new LOJoin(expected, mm, JOINTYPE.HASH, new boolean[] {true, true});

          ProjectExpression x = new ProjectExpression(aprojplan, 0, 0, C);
          x.neverUseForRealSetFieldSchema(new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          LogicalExpressionPlan bprojplan = new LogicalExpressionPlan();
          ProjectExpression y = new ProjectExpression(bprojplan, 1, 0, C);
          y.neverUseForRealSetFieldSchema(new LogicalFieldSchema(null, null, DataType.BYTEARRAY));
          mm.put(0, aprojplan);
          mm.put(1, bprojplan);
          C.neverUseForRealSetSchema(cschema);
          expected.add(C);
          expected.connect(DA, C);
          expected.connect(DB, C);
         
          // D = filter
View Full Code Here

Examples of org.apache.pig.newplan.logical.relational.LOJoin

        cschema.getField(0).uid = 1;
        cschema.getField(1).uid = 2;

        MultiMap<Integer, LogicalExpressionPlan> mm =
            new MultiMap<Integer, LogicalExpressionPlan>();
        LOJoin C = new LOJoin(lp, mm, JOINTYPE.HASH, new boolean[] {true, true});
       
        LogicalExpressionPlan aprojplan = new LogicalExpressionPlan();
        ProjectExpression x = new ProjectExpression(aprojplan, 0, 0, C);
        x.neverUseForRealSetFieldSchema(new LogicalFieldSchema(null, null,
                DataType.INTEGER, 1));
        LogicalExpressionPlan bprojplan = new LogicalExpressionPlan();
        ProjectExpression y = new ProjectExpression(bprojplan, 1, 0, C);
        y.neverUseForRealSetFieldSchema(new LogicalFieldSchema(null, null,
                DataType.INTEGER, 2));
        mm.put(0, aprojplan);
        mm.put(1, bprojplan);
       
        C.neverUseForRealSetSchema(cschema);
        // Don't add it to the plan quite yet
       
        // D = filter
        LogicalExpressionPlan filterPlan = new LogicalExpressionPlan();
        LOFilter D = new LOFilter(lp, filterPlan);
View Full Code Here

Examples of org.apache.pig.newplan.logical.relational.LOJoin

        l2.setAlias("B");
        plan.add(l2);
       
        MultiMap<Integer, LogicalExpressionPlan> joinPlans = new MultiMap<Integer, LogicalExpressionPlan>();
       
        LogicalRelationalOperator j1 = new LOJoin(plan, joinPlans, LOJoin.JOINTYPE.HASH, new boolean[]{true, true});
        LogicalExpressionPlan p1 = new LogicalExpressionPlan();
        ProjectExpression lp1 = new ProjectExpression(p1, 0, 1, j1);
        p1.add(lp1);
        joinPlans.put(0, p1);
       
        LogicalExpressionPlan p2 = new LogicalExpressionPlan();
        ProjectExpression lp2 = new ProjectExpression(p2, 1, 1, j1);
        p2.add(lp2);
        joinPlans.put(1, p2);
       
        j1.setAlias("C");
        plan.add(j1);
       
        // build an expression with no AND
        LogicalExpressionPlan p3 = new LogicalExpressionPlan();
        LogicalRelationalOperator f1 = new LOFilter(plan, p3);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.