Package org.apache.pig.newplan.logical.relational

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


        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
       
        org.apache.pig.newplan.logical.relational.LogicalPlan expected =
            new org.apache.pig.newplan.logical.relational.LogicalPlan();
       
        LogicalSchema aschema = new LogicalSchema();     
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("d", null, DataType.BYTEARRAY));
        LOLoad load = new LOLoad(new FileSpec("/test/d.txt", new FuncSpec("org.apache.pig.builtin.PigStorage")), aschema, expected, null);
        expected.add(load);
       
        LOForEach foreach = new LOForEach(expected);
        org.apache.pig.newplan.logical.relational.LogicalPlan innerPlan = new org.apache.pig.newplan.logical.relational.LogicalPlan();
        LOInnerLoad l1 = new LOInnerLoad(innerPlan, foreach, 0);
        innerPlan.add(l1);
        LOInnerLoad l2 = new LOInnerLoad(innerPlan, foreach, 1);
        innerPlan.add(l2);
       
        List<LogicalExpressionPlan> eps = new ArrayList<LogicalExpressionPlan>();
        LOGenerate gen = new LOGenerate(innerPlan, eps, new boolean[] {false, true});
        LogicalExpressionPlan p1 = new LogicalExpressionPlan();
        p1.add(new ProjectExpression(p1, 0, -1, gen));
        LogicalExpressionPlan p2 = new LogicalExpressionPlan();
        p2.add(new ProjectExpression(p2, 1, -1, gen));
        eps.add(p1);
        eps.add(p2);
       
       
        innerPlan.add(gen);
        innerPlan.connect(l1, gen);
        innerPlan.connect(l2, gen);
       
        foreach.setInnerPlan(innerPlan);     
        expected.add(foreach);
       
        LOStore s = new LOStore(expected, new FileSpec("/test/empty", new FuncSpec("org.apache.pig.builtin.PigStorage")));
     
        expected.add(s);
       
        expected.connect(load, foreach);
        expected.connect(foreach, s);
       
        assertTrue(expected.isEqual(newPlan));
       
        LogicalSchema schema = foreach.getSchema();
        aschema = new LogicalSchema();
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("d", null, DataType.BYTEARRAY));
        assertTrue(schema.isEqual(aschema));
    }
View Full Code Here


        LogicalPlan plan = lpt.buildPlan("b = foreach a generate id, FLATTEN(d);")
               
        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
        LogicalRelationalOperator op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
       
        LogicalSchema s2 = new LogicalSchema();
        s2.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        s2.addField(new LogicalSchema.LogicalFieldSchema("v", null, DataType.BYTEARRAY));
        s2.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        assertTrue(s2.isEqual(op.getSchema()));
       
        // test no flatten
        lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, d:bag{t:(v, s)});");
        plan = lpt.buildPlan("b = foreach a generate id, d;")
               
        newPlan = migratePlan(plan);
        op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
       
        LogicalSchema aschema = new LogicalSchema();     
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        LogicalSchema aschema2 = new LogicalSchema();
        LogicalSchema aschema3 = new LogicalSchema();
        aschema3.addField(new LogicalSchema.LogicalFieldSchema("v", null, DataType.BYTEARRAY));
        aschema3.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        aschema2.addField(new LogicalSchema.LogicalFieldSchema("t", aschema3, DataType.TUPLE));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("d", aschema2, DataType.BAG))
       
        assertTrue(aschema.isEqual(op.getSchema()));
       
        // check with defined data type
        lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, d:bag{t:(v:int, s)});");
        lpt.buildPlan("b = foreach a generate id, FLATTEN(d);");       
        plan = lpt.buildPlan("store b into '/test/empty';");
               
        newPlan = migratePlan(plan);
        op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
        op = (LogicalRelationalOperator)newPlan.getPredecessors(op).get(0);
        LogicalSchema schema = op.getSchema();
       
        aschema = new LogicalSchema();
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("v", null, DataType.INTEGER));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        assertTrue(schema.isEqual(aschema));
     
   
        // test with add
        lpt = new LogicalPlanTester(pc);
        lpt.buildPlan("a = load '/test/d.txt' as (id, v:int, s:int);");
        lpt.buildPlan("b = foreach a generate id, v+s;");       
        plan = lpt.buildPlan("store b into '/test/empty';");
       
        newPlan = migratePlan(plan);
        op = (LogicalRelationalOperator)newPlan.getSinks().get(0);
        op = (LogicalRelationalOperator)newPlan.getPredecessors(op).get(0);
        schema = op.getSchema();
       
        aschema = new LogicalSchema();
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema(null, null, DataType.INTEGER));
        assertTrue(schema.isEqual(aschema));
    }      
View Full Code Here

        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
       
        org.apache.pig.newplan.logical.relational.LogicalPlan expected =
            new org.apache.pig.newplan.logical.relational.LogicalPlan();
       
        LogicalSchema aschema = new LogicalSchema();     
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        LogicalSchema aschema2 = new LogicalSchema();
        LogicalSchema aschema3 = new LogicalSchema();
        aschema3.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.INTEGER));
        aschema3.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        aschema2.addField(new LogicalSchema.LogicalFieldSchema("t", aschema3, DataType.TUPLE));
        aschema2.setTwoLevelAccessRequired(true);
        aschema.addField(new LogicalSchema.LogicalFieldSchema("d", aschema2, DataType.BAG));       
       
        LOLoad load = new LOLoad(new FileSpec("/test/d.txt", new FuncSpec("org.apache.pig.builtin.PigStorage")), aschema, expected, null);
        expected.add(load);        
       
        LOForEach foreach2 = new LOForEach(expected);
        org.apache.pig.newplan.logical.relational.LogicalPlan innerPlan = new org.apache.pig.newplan.logical.relational.LogicalPlan();
        LOInnerLoad l1 = new LOInnerLoad(innerPlan, foreach2, 0);
        innerPlan.add(l1);
        LOInnerLoad l2 = new LOInnerLoad(innerPlan, foreach2, 1);
        innerPlan.add(l2);
       
        List<LogicalExpressionPlan>  eps = new ArrayList<LogicalExpressionPlan>();
        LOGenerate gen = new LOGenerate(innerPlan, eps, new boolean[] {false, true});
        LogicalExpressionPlan p1 = new LogicalExpressionPlan();
        new ProjectExpression(p1, 0, -1, gen);
        LogicalExpressionPlan p2 = new LogicalExpressionPlan();       
        new ProjectExpression(p2, 1, -1, gen);
        eps.add(p1);
        eps.add(p2);
       
        innerPlan.add(gen);
        innerPlan.connect(l1, gen);
        innerPlan.connect(l2, gen);
       
        foreach2.setInnerPlan(innerPlan);     
        expected.add(foreach2);
               
        LOStore s = new LOStore(expected, new FileSpec("/test/empty", new FuncSpec("org.apache.pig.builtin.PigStorage")));
     
        expected.add(s);
       
        expected.connect(load, foreach2);
   
        expected.connect(foreach2, s);
       
        System.out.println(newPlan);
       
        System.out.println(expected);
       
        assertTrue(expected.isEqual(newPlan));
       
        LogicalSchema schema = foreach2.getSchema();
        aschema = new LogicalSchema();
        aschema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.BYTEARRAY));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("d::id", null, DataType.INTEGER));
        aschema.addField(new LogicalSchema.LogicalFieldSchema("s", null, DataType.BYTEARRAY));
        assertTrue(schema.isEqual(aschema));
        assertTrue(schema.getField("id")==schema.getField(0));
        assertTrue(schema.getField("d::id")==schema.getField(1));
    }
View Full Code Here

        LogicalPlan plan = lpt.buildPlan("store b into '/test/empty';");
       
        // check basics
        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);
       
        LogicalSchema loadSchema =
            ((LogicalRelationalOperator)newPlan.getSources().get(0)).getSchema();
       
        Set<Long> uids = getAllUids(loadSchema);
       
        LogicalRelationalOperator op = (LogicalRelationalOperator)
            newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
        assertEquals( LOCogroup.class, op.getClass() );
        LogicalSchema schema = op.getSchema();
       
        assertEquals( 2, schema.size() );
        assertEquals( DataType.CHARARRAY, schema.getField(0).type );
        assertEquals( false, uids.contains( schema.getField(0).uid ) );
        assertEquals( 0, schema.getField(0).alias.compareTo("group") );
       
       
        assertEquals( DataType.BAG, schema.getField(1).type );
       
        assertEquals( DataType.CHARARRAY, schema.getField(1).schema.getField(0).type );
        assertEquals( 0, schema.getField(1).schema.getField(0).alias.compareTo("name") );
        assertEquals( loadSchema.getField(0).uid, schema.getField(1).schema.getField(0).uid );
        assertEquals( DataType.INTEGER, schema.getField(1).schema.getField(1).type );
        assertEquals( 0, schema.getField(1).schema.getField(1).alias.compareTo("age") );
        assertEquals( loadSchema.getField(1).uid, schema.getField(1).schema.getField(1).uid );
        assertEquals( DataType.FLOAT, schema.getField(1).schema.getField(2).type );
        assertEquals( 0, schema.getField(1).schema.getField(2).alias.compareTo("gpa") );
        assertEquals( loadSchema.getField(2).uid, schema.getField(1).schema.getField(2).uid );
       
        uids.add(Long.valueOf( schema.getField(0).uid ) );
        assertEquals( false, uids.contains( schema.getField(1).uid ) );
       
        assertEquals( LOCogroup.class, newPlan.getSuccessors(newPlan.getSources().get(0)).get(0).getClass() );
        LOCogroup cogroup = (LOCogroup) newPlan.getSuccessors(newPlan.getSources().get(0)).get(0);
       
        MultiMap<Integer, LogicalExpressionPlan> expressionPlans = cogroup.getExpressionPlans();
View Full Code Here

        LogicalPlan plan = lpt.buildPlan("store b into '/test/empty';");
       
        // check basics
        org.apache.pig.newplan.logical.relational.LogicalPlan newPlan = migratePlan(plan);

        LogicalSchema loadSchema =
            ((LogicalRelationalOperator)newPlan.getSources().get(0)).getSchema();
       
        Set<Long> uids = getAllUids(loadSchema);
       
        LogicalRelationalOperator op = (LogicalRelationalOperator)
            newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
        assertEquals( LOCogroup.class, op.getClass() );
        LogicalSchema schema = op.getSchema();
       
        assertEquals( 2, schema.size() );
        assertEquals( DataType.TUPLE, schema.getField(0).type );
        assertEquals( false, uids.contains( schema.getField(0).uid ) );
        assertEquals( 0, schema.getField(0).alias.compareTo("group") );
        assertEquals( DataType.CHARARRAY, schema.getField(0).schema.getField(0).type );       
        assertEquals( DataType.INTEGER, schema.getField(0).schema.getField(1).type );
       
        assertEquals( DataType.BAG, schema.getField(1).type );
       
        assertEquals( DataType.CHARARRAY, schema.getField(1).schema.getField(0).type );
        assertEquals( 0, schema.getField(1).schema.getField(0).alias.compareTo("name") );
        assertEquals( loadSchema.getField(0).uid, schema.getField(1).schema.getField(0).uid );
        assertEquals( DataType.INTEGER, schema.getField(1).schema.getField(1).type );
        assertEquals( 0, schema.getField(1).schema.getField(1).alias.compareTo("age") );
        assertEquals( loadSchema.getField(1).uid, schema.getField(1).schema.getField(1).uid );
        assertEquals( DataType.FLOAT, schema.getField(1).schema.getField(2).type );
        assertEquals( 0, schema.getField(1).schema.getField(2).alias.compareTo("gpa") );
        assertEquals( loadSchema.getField(2).uid, schema.getField(1).schema.getField(2).uid );
       
       
        // We are doing Uid tests at the end as the uids should not repeat
        uids.add(Long.valueOf( schema.getField(0).uid ) );
        assertEquals( false, uids.contains( schema.getField(0).schema.getField(0).uid ) );
        uids.add( Long.valueOf( schema.getField(0).schema.getField(0).uid ) );
        assertEquals( false, uids.contains( schema.getField(0).schema.getField(1).uid ) );
        uids.add( Long.valueOf( schema.getField(0).schema.getField(1).uid ) );       
        assertEquals( false, uids.contains( schema.getField(1).uid ) );
       
        assertEquals( LOCogroup.class, newPlan.getSuccessors(newPlan.getSources().get(0)).get(0).getClass() );
        LOCogroup cogroup = (LOCogroup) newPlan.getSuccessors(newPlan.getSources().get(0)).get(0);
       
        MultiMap<Integer, LogicalExpressionPlan> expressionPlans = cogroup.getExpressionPlans();
View Full Code Here

       
        assertEquals( LOCogroup.class, newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0).getClass() );
        LOCogroup cogroup = (LOCogroup) newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
       
        // Reason for this strange way of getting the load schema is to maintain the sequence correctly       
        LogicalSchema loadSchema =
            ((LogicalRelationalOperator)newPlan.getPredecessors(cogroup).get(0)).getSchema();
       
        LogicalSchema load2Schema =
            ((LogicalRelationalOperator)newPlan.getPredecessors(cogroup).get(1)).getSchema();
       
        Set<Long> uids = getAllUids(loadSchema);
        uids.addAll( getAllUids( load2Schema ) );
       
        LogicalRelationalOperator op = (LogicalRelationalOperator)
            newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
        assertEquals( LOCogroup.class, op.getClass() );
        LogicalSchema schema = op.getSchema();
       
        assertEquals( 3, schema.size() );
        assertEquals( DataType.CHARARRAY, schema.getField(0).type );
        assertEquals( false, uids.contains( schema.getField(0).uid ) );
        assertEquals( 0, schema.getField(0).alias.compareTo("group") );

        assertEquals( DataType.BAG, schema.getField(1).type );
       
        assertEquals( DataType.CHARARRAY, schema.getField(1).schema.getField(0).type );
        assertEquals( 0, schema.getField(1).schema.getField(0).alias.compareTo("name") );
        assertEquals( loadSchema.getField(0).uid, schema.getField(1).schema.getField(0).uid );
        assertEquals( DataType.INTEGER, schema.getField(1).schema.getField(1).type );
        assertEquals( 0, schema.getField(1).schema.getField(1).alias.compareTo("age") );
        assertEquals( loadSchema.getField(1).uid, schema.getField(1).schema.getField(1).uid );
        assertEquals( DataType.FLOAT, schema.getField(1).schema.getField(2).type );
        assertEquals( 0, schema.getField(1).schema.getField(2).alias.compareTo("gpa") );
        assertEquals( loadSchema.getField(2).uid, schema.getField(1).schema.getField(2).uid );
       
        assertEquals( DataType.BAG, schema.getField(2).type );
       
        assertEquals( DataType.CHARARRAY, schema.getField(2).schema.getField(0).type );
        assertEquals( 0, schema.getField(2).schema.getField(0).alias.compareTo("name") );
        assertEquals( load2Schema.getField(0).uid, schema.getField(2).schema.getField(0).uid );
        assertEquals( DataType.CHARARRAY, schema.getField(2).schema.getField(1).type );
        assertEquals( 0, schema.getField(2).schema.getField(1).alias.compareTo("blah") );
        assertEquals( load2Schema.getField(1).uid, schema.getField(2).schema.getField(1).uid );       
       
       
        // We are doing Uid tests at the end as the uids should not repeat               
        assertEquals( false, uids.contains( schema.getField(1).uid ) );
        uids.add( schema.getField(1).uid );
        assertEquals( false, uids.contains( schema.getField(2).uid) );
       
        MultiMap<Integer, LogicalExpressionPlan> expressionPlans = cogroup.getExpressionPlans();
        assertEquals( 2, expressionPlans.size() );
        List<LogicalExpressionPlan> plans = (List<LogicalExpressionPlan>) expressionPlans.get(Integer.valueOf(0));
        assertEquals( 1, plans.size() );
View Full Code Here

       
        assertEquals( LOCogroup.class, newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0).getClass() );
        LOCogroup cogroup = (LOCogroup) newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
       
        // Reason for this strange way of getting the load schema is to maintain the sequence correctly       
        LogicalSchema loadSchema =
            ((LogicalRelationalOperator)newPlan.getPredecessors(cogroup).get(0)).getSchema();
       
        LogicalSchema load2Schema =
            ((LogicalRelationalOperator)newPlan.getPredecessors(cogroup).get(1)).getSchema();
       
        Set<Long> uids = getAllUids(loadSchema);
        uids.addAll( getAllUids( load2Schema ) );
       
        LogicalRelationalOperator op = (LogicalRelationalOperator)
            newPlan.getSuccessors( newPlan.getSources().get(0) ).get(0);
        assertEquals( LOCogroup.class, op.getClass() );
        LogicalSchema schema = op.getSchema();
       
        assertEquals( 3, schema.size() );
        assertEquals( DataType.TUPLE, schema.getField(0).type );
        assertEquals( false, uids.contains( schema.getField(0).uid ) );
        assertEquals( 0, schema.getField(0).alias.compareTo("group") );
        assertEquals( DataType.CHARARRAY, schema.getField(0).schema.getField(0).type );
        assertEquals( 0, schema.getField(0).schema.getField(0).alias.compareTo("name") );
        assertEquals( DataType.INTEGER, schema.getField(0).schema.getField(1).type );
        assertEquals( 0, schema.getField(0).schema.getField(1).alias.compareTo("age") );               
              

        assertEquals( DataType.BAG, schema.getField(1).type );
       
        assertEquals( DataType.CHARARRAY, schema.getField(1).schema.getField(0).type );
        assertEquals( 0, schema.getField(1).schema.getField(0).alias.compareTo("name") );
        assertEquals( loadSchema.getField(0).uid, schema.getField(1).schema.getField(0).uid );
        assertEquals( DataType.INTEGER, schema.getField(1).schema.getField(1).type );
        assertEquals( 0, schema.getField(1).schema.getField(1).alias.compareTo("age") );
        assertEquals( loadSchema.getField(1).uid, schema.getField(1).schema.getField(1).uid );
        assertEquals( DataType.FLOAT, schema.getField(1).schema.getField(2).type );
        assertEquals( 0, schema.getField(1).schema.getField(2).alias.compareTo("gpa") );
        assertEquals( loadSchema.getField(2).uid, schema.getField(1).schema.getField(2).uid );
       
        assertEquals( DataType.BAG, schema.getField(2).type );
       
        assertEquals( DataType.CHARARRAY, schema.getField(2).schema.getField(0).type );
        assertEquals( 0, schema.getField(2).schema.getField(0).alias.compareTo("name") );
        assertEquals( load2Schema.getField(0).uid, schema.getField(2).schema.getField(0).uid );
        assertEquals( DataType.INTEGER, schema.getField(2).schema.getField(1).type );
        assertEquals( 0, schema.getField(2).schema.getField(1).alias.compareTo("age") );
        assertEquals( load2Schema.getField(1).uid, schema.getField(2).schema.getField(1).uid );
        assertEquals( DataType.CHARARRAY, schema.getField(2).schema.getField(2).type );
        assertEquals( 0, schema.getField(2).schema.getField(2).alias.compareTo("blah") );
        assertEquals( load2Schema.getField(2).uid, schema.getField(2).schema.getField(2).uid );       
       
       
        // We are doing Uid tests at the end as the uids should not repeat
        assertEquals( false, uids.contains( schema.getField(0).schema.getField(0).uid ) );
        assertEquals( false, uids.contains( schema.getField(0).schema.getField(1).uid ) );
        assertEquals( false, uids.contains( schema.getField(1).uid ) );
        uids.add( schema.getField(1).uid );
        assertEquals( false, uids.contains( schema.getField(2).uid) );
       
       
        MultiMap<Integer, LogicalExpressionPlan> expressionPlans = cogroup.getExpressionPlans();
        assertEquals( 2, expressionPlans.size() );
        List<LogicalExpressionPlan> plans = (List<LogicalExpressionPlan>) expressionPlans.get(Integer.valueOf(0));
View Full Code Here

    LogicalRelationalOperator join = null;
    LogicalRelationalOperator store = null;   
   
    private void prep() {
        plan = new LogicalPlan();
        LogicalSchema schema = new LogicalSchema();
        schema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.INTEGER));
        schema.addField(new LogicalSchema.LogicalFieldSchema("name", null, DataType.CHARARRAY));
        schema.addField(new LogicalSchema.LogicalFieldSchema("age", null, DataType.INTEGER));   
        schema.getField(0).uid = 1;
        schema.getField(1).uid = 2;
        schema.getField(2).uid = 3;
        LogicalRelationalOperator l1 = new LOLoad(null, schema, plan, null);
        l1.setAlias("A");
        plan.add(l1);

        schema = new LogicalSchema();
        schema.addField(new LogicalSchema.LogicalFieldSchema("id", null, DataType.INTEGER));
        schema.addField(new LogicalSchema.LogicalFieldSchema("dept", null, DataType.INTEGER));
        schema.addField(new LogicalSchema.LogicalFieldSchema("salary", null, DataType.FLOAT));   
        schema.getField(0).uid = 4;
        schema.getField(1).uid = 5;
        schema.getField(2).uid = 6;
        LogicalRelationalOperator l2 = new LOLoad(null, schema, plan, null);
        l2.setAlias("B");
        plan.add(l2);
       
        MultiMap<Integer, LogicalExpressionPlan> joinPlans = new MultiMap<Integer, LogicalExpressionPlan>();
View Full Code Here

    }
    @Test
    public void testJoinDifferentNumInputs() throws FrontendException {
        LogicalPlan lp = new LogicalPlan();
               LogicalSchema jaschema1 = new LogicalSchema();
       jaschema1.addField(new LogicalSchema.LogicalFieldSchema(
           "x", null, DataType.INTEGER));
       LOLoad A1 = new LOLoad(new FileSpec("/abc",
           new FuncSpec("/fooload", new String[] {"x", "y"})), jaschema1, lp, null);
       lp.add(A1);
       
        // B = load
        LogicalSchema jbschema1 = new LogicalSchema();
        jbschema1.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LOLoad B1 = new LOLoad(new FileSpec("/def",
            new FuncSpec("PigStorage", "\t")), jbschema1, lp, null);
        lp.add(B1);
       
        // C = join
        LogicalSchema jcschema1 = new LogicalSchema();
        jcschema1.addField(new LogicalSchema.LogicalFieldSchema(
            "x", null, DataType.INTEGER));
        jcschema1.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LogicalExpressionPlan aprojplan1 = new LogicalExpressionPlan();
        new ProjectExpression(aprojplan1, 0, 0, null);
        LogicalExpressionPlan bprojplan1 = new LogicalExpressionPlan();
        new ProjectExpression(bprojplan1, 1, 0, null);
        MultiMap<Integer, LogicalExpressionPlan> mm1 =
            new MultiMap<Integer, LogicalExpressionPlan>();
        mm1.put(0, aprojplan1);
        mm1.put(1, bprojplan1);
        LOJoin C1 = new LOJoin(lp, mm1, JOINTYPE.HASH, new boolean[] {true, true});
        C1.neverUseForRealSetSchema(jcschema1);
        lp.add(C1);
        lp.connect(A1, C1);
        lp.connect(B1, C1);
        // A = load
        LogicalSchema jaschema5 = new LogicalSchema();
        jaschema5.addField(new LogicalSchema.LogicalFieldSchema(
           "x", null, DataType.INTEGER));
        LOLoad A5 = new LOLoad(new FileSpec("/abc",
           new FuncSpec("/fooload", new String[] {"x", "y"})), jaschema5, lp, null);
        lp.add(A5);
       
        // B = load
        LogicalSchema jbschema5 = new LogicalSchema();
        jbschema5.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LOLoad B5 = new LOLoad(new FileSpec("/def",
            new FuncSpec("PigStorage", "\t")), jbschema5, lp, null);
        lp.add(B5);
       
        // Beta = load
        LogicalSchema jbetaschema5 = new LogicalSchema();
        jbetaschema5.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LOLoad Beta5 = new LOLoad(new FileSpec("/ghi",
            new FuncSpec("PigStorage", "\t")), jbetaschema5, lp, null);
        lp.add(Beta5);
       
        // C = join
        LogicalSchema jcschema5 = new LogicalSchema();
        jcschema5.addField(new LogicalSchema.LogicalFieldSchema(
            "x", null, DataType.INTEGER));
        jcschema5.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LogicalExpressionPlan aprojplan5 = new LogicalExpressionPlan();
        new ProjectExpression(aprojplan5, 0, 0, null);
        LogicalExpressionPlan bprojplan5 = new LogicalExpressionPlan();
        new ProjectExpression(bprojplan5, 1, 0, null);
View Full Code Here

    @Test
    public void testJoinDifferentJoinKeys() throws FrontendException {
        LogicalPlan lp = new LogicalPlan();
       
        // Test different join keys
        LogicalSchema jaschema6 = new LogicalSchema();
        jaschema6.addField(new LogicalSchema.LogicalFieldSchema(
           "x", null, DataType.INTEGER));
        LOLoad A6 = new LOLoad(new FileSpec("/abc",
           new FuncSpec("/fooload", new String[] {"x", "y"})), jaschema6, lp, null);
        lp.add(A6);
       
        // B = load
        LogicalSchema jbschema6 = new LogicalSchema();
        jbschema6.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        jbschema6.addField(new LogicalSchema.LogicalFieldSchema(
            "z", null, DataType.LONG));
        LOLoad B6 = new LOLoad(new FileSpec("/def",
            new FuncSpec("PigStorage", "\t")), jbschema6, lp, null);
        lp.add(B6);
       
        // C = join
        LogicalSchema jcschema6 = new LogicalSchema();
        jcschema6.addField(new LogicalSchema.LogicalFieldSchema(
            "x", null, DataType.INTEGER));
        jcschema6.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LogicalExpressionPlan aprojplan6 = new LogicalExpressionPlan();
        new ProjectExpression(aprojplan6, 0, 0, null);
        LogicalExpressionPlan bprojplan6 = new LogicalExpressionPlan();
        new ProjectExpression(bprojplan6, 1, 0, null);
        LogicalExpressionPlan b2projplan6 = new LogicalExpressionPlan();
        new ProjectExpression(b2projplan6, 1, 1, null);
        MultiMap<Integer, LogicalExpressionPlan> mm6 =
            new MultiMap<Integer, LogicalExpressionPlan>();
        mm6.put(0, aprojplan6);
        mm6.put(1, bprojplan6);
        mm6.put(1, b2projplan6);
        LOJoin C6 = new LOJoin(lp, mm6, JOINTYPE.HASH, new boolean[] {true, true});
        C6.neverUseForRealSetSchema(jcschema6);
        lp.add(C6);
        lp.connect(A6, C6);
        lp.connect(B6, C6);
       
       
        LogicalSchema jaschema7 = new LogicalSchema();
        jaschema7.addField(new LogicalSchema.LogicalFieldSchema(
           "x", null, DataType.INTEGER));
        LOLoad A7 = new LOLoad(new FileSpec("/abc",
           new FuncSpec("/fooload", new String[] {"x", "y"})), jaschema7, lp, null);
        lp.add(A7);
       
        // B = load
        LogicalSchema jbschema7 = new LogicalSchema();
        jbschema7.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        jbschema7.addField(new LogicalSchema.LogicalFieldSchema(
            "z", null, DataType.LONG));
        LOLoad B7 = new LOLoad(new FileSpec("/def",
            new FuncSpec("PigStorage", "\t")), jbschema7, lp, null);
        lp.add(B7);
       
        // C = join
        LogicalSchema jcschema7 = new LogicalSchema();
        jcschema7.addField(new LogicalSchema.LogicalFieldSchema(
            "x", null, DataType.INTEGER));
        jcschema7.addField(new LogicalSchema.LogicalFieldSchema(
            "y", null, DataType.INTEGER));
        LogicalExpressionPlan aprojplan7 = new LogicalExpressionPlan();
        new ProjectExpression(aprojplan7, 0, 0, null);
        LogicalExpressionPlan bprojplan7 = new LogicalExpressionPlan();
        new ProjectExpression(bprojplan7, 1, 1, null);
View Full Code Here

TOP

Related Classes of org.apache.pig.newplan.logical.relational.LogicalSchema

Copyright © 2018 www.massapicom. 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.