Package org.apache.pig.impl.logicalLayer

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


            LogicalOperator before,
            Map<Integer, Integer> projectionMapping)
    throws VisitorException, FrontendException {
        // Fix up COGroup internal wiring
        if (before instanceof LOCogroup) {
            LOCogroup cg = (LOCogroup) before ;
            cg.switchGroupByPlanOp(after, newNode);
        }
        if (before instanceof LOJoin) {
            LOJoin frj = (LOJoin) before ;
            frj.switchJoinColPlanOp(after, newNode);
        }
View Full Code Here


    @Test
    public void testQueryCogroup2() throws FrontendException {
        String query = "foreach (cogroup (load 'a') by ($1), (load 'b') by ($1)) generate $1.$1, $2.$1 ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields01 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields01.getFields().size() == 1);
        assertTrue(cogroupRelevantFields01.getNeedAllFields() == false);
        assertTrue(cogroupRelevantFields01.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields01.getFields().contains(new Pair<Integer, Integer>(0, 1)));
        RequiredFields cogroupRelevantFields02 = cogroup.getRelevantInputs(0, 0).get(1);
        assertTrue(cogroupRelevantFields02.getFields().size() == 1);
        assertTrue(cogroupRelevantFields02.getNeedAllFields() == false);
        assertTrue(cogroupRelevantFields02.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields02.getFields().contains(new Pair<Integer, Integer>(1, 1)));
       
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields1.getFields() == null);
       
        RequiredFields cogroupRelevantFields2 = cogroup.getRelevantInputs(0, 2).get(1);
        assertTrue(cogroupRelevantFields2.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields2.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields2.getFields() == null);
    }
View Full Code Here

    @Test
    public void testQueryGroup3() throws FrontendException {
        String query = "foreach (group (load 'a') by ($6, $7)) generate flatten(group) ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields0 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields0.getNeedAllFields() == false);
        assertTrue(cogroupRelevantFields0.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields0.getFields().size() == 2);
        assertTrue(cogroupRelevantFields0.getFields().contains(new Pair<Integer, Integer>(0, 6)));
        assertTrue(cogroupRelevantFields0.getFields().contains(new Pair<Integer, Integer>(0, 7)));
       
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields() == false);       
    }
View Full Code Here

        planTester.buildPlan("b = load 'b' as (url,rank);");
        planTester.buildPlan("c = cogroup a by url, b by url;");
        LogicalPlan lp = planTester.buildPlan("d = foreach c generate group,flatten(a),flatten(b);");

        //check cogroup required fields
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        assertTrue(cogroup.getRelevantInputs(0, 0).size() == 2);
        RequiredFields cogroupRelevantFields00 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields00.getNeedAllFields() == false);
        assertTrue(cogroupRelevantFields00.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields00.getFields().size() == 1);
        assertTrue(cogroupRelevantFields00.getFields().get(0).first == 0);
        assertTrue(cogroupRelevantFields00.getFields().get(0).second == 0);
       
        RequiredFields cogroupRelevantFields01 = cogroup.getRelevantInputs(0, 0).get(1);
        assertTrue(cogroupRelevantFields01.getNeedAllFields() == false);
        assertTrue(cogroupRelevantFields01.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields01.getFields().size() == 1);
        assertTrue(cogroupRelevantFields01.getFields().get(0).first == 1);
        assertTrue(cogroupRelevantFields01.getFields().get(0).second == 0);
       
       
        assertTrue(cogroup.getRelevantInputs(0, 1).size() == 2);
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields1.getFields() == null);
        assertTrue(cogroup.getRelevantInputs(0, 1).get(1) == null);
       
        RequiredFields cogroupRelevantFields2 = cogroup.getRelevantInputs(0, 2).get(1);
        assertTrue(cogroupRelevantFields2.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields2.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields2.getFields() == null);
        assertTrue(cogroup.getRelevantInputs(0, 2).get(0) == null);
       
        LOForEach foreach = (LOForEach)lp.getLeaves().get(0);
        RequiredFields foreachRelevantFields0 = foreach.getRelevantInputs(0, 0).get(0);
        assertTrue(foreachRelevantFields0.getNeedAllFields() == false);
        assertTrue(foreachRelevantFields0.getNeedNoFields() == false);
View Full Code Here

    @Test
    public void testQueryGroupByStarNoSchema() throws FrontendException  {
        String query = "foreach (group (load 'a') by *) generate $1 ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields0 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields0.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields0.getNeedNoFields() == false);
       
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields() == false);
       
        LOForEach foreach = (LOForEach)lp.getSuccessors(cogroup).get(0);
        RequiredFields foreachRelevantFields0 = foreach.getRelevantInputs(0, 0).get(0);
View Full Code Here

    @Test
    public void testQueryGroupByStarWithSchema() throws FrontendException {
        String query = "foreach (group (load 'a' as (url, hitCount)) by *) generate $1 ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields0 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields0.getNeedAllFields() == false);
        assertTrue(cogroupRelevantFields0.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields0.getFields().size() == 2);
        assertTrue(cogroupRelevantFields0.getFields().contains(new Pair<Integer, Integer>(0, 0)));
        assertTrue(cogroupRelevantFields0.getFields().contains(new Pair<Integer, Integer>(0, 1)));
       
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields() == true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields() == false);
        assertTrue(cogroupRelevantFields1.getFields() == null);
       
        assertTrue(cogroup.getRelevantInputs(0, 2) == null);
       
        LOForEach foreach = (LOForEach)lp.getSuccessors(cogroup).get(0);
        RequiredFields forEachRelevantFields0 = foreach.getRelevantInputs(0, 0).get(0);
        assertTrue(forEachRelevantFields0.getNeedAllFields() == false);
        assertTrue(forEachRelevantFields0.getNeedNoFields() == false);
View Full Code Here

    @Test
    public void testQueryCogroup1() throws FrontendException {
        String query = "foreach (cogroup (load 'a') by $1, (load 'b') by $1) generate org.apache.pig.builtin.AVG($1) ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields0 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields0.getNeedAllFields()==false);
        assertTrue(cogroupRelevantFields0.getNeedNoFields()==false);
        assertTrue(cogroupRelevantFields0.getFields().size()==1);
        assertTrue(cogroupRelevantFields0.getFields().contains(new Pair<Integer, Integer>(0, 1)));
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 0).get(1);
        assertTrue(cogroupRelevantFields1.getFields().size()==1);
        assertTrue(cogroupRelevantFields1.getFields().contains(new Pair<Integer, Integer>(1, 1)));
       
        RequiredFields cogroupRelevantFields10 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields10.needNoFields() == false);
        assertTrue(cogroupRelevantFields10.needAllFields() == true);
        assertTrue(cogroupRelevantFields10.getFields() == null);
       
        RequiredFields cogroupRelevantFields11 = cogroup.getRelevantInputs(0, 1).get(1);
        assertTrue(cogroupRelevantFields11 == null);
       
        RequiredFields cogroupRelevantFields20 = cogroup.getRelevantInputs(0, 2).get(0);
        assertTrue(cogroupRelevantFields20 == null);
       
        RequiredFields cogroupRelevantFields21 = cogroup.getRelevantInputs(0, 2).get(1);
        assertTrue(cogroupRelevantFields21.needNoFields() == false);
        assertTrue(cogroupRelevantFields21.needAllFields() == true);
        assertTrue(cogroupRelevantFields21.getFields() == null);
    }
View Full Code Here

    @Test
    public void testQueryGroupAll() throws FrontendException  {
        String query = "foreach (group (load 'a') ALL) generate $1 ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields0 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields0.getNeedAllFields()==false);
        assertTrue(cogroupRelevantFields0.getNeedNoFields()==true);
        assertTrue(cogroupRelevantFields0.getFields()==null);
       
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields()==true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields()==false);
        assertTrue(cogroupRelevantFields1.getFields()==null);
    }
View Full Code Here

    @Test
    public void testQueryGroup2() throws FrontendException {
        String query = "foreach (group (load 'a') by $1) generate group, '1' ;";
        LogicalPlan lp = planTester.buildPlan(query);
       
        LOCogroup cogroup = (LOCogroup)lp.getSuccessors(lp.getRoots().get(0)).get(0);
        RequiredFields cogroupRelevantFields0 = cogroup.getRelevantInputs(0, 0).get(0);
        assertTrue(cogroupRelevantFields0.getNeedAllFields()==false);
        assertTrue(cogroupRelevantFields0.getNeedNoFields()==false);
        assertTrue(cogroupRelevantFields0.getFields().size()==1);
        assertTrue(cogroupRelevantFields0.getFields().contains(new Pair<Integer, Integer>(0, 1)));
       
        RequiredFields cogroupRelevantFields1 = cogroup.getRelevantInputs(0, 1).get(0);
        assertTrue(cogroupRelevantFields1.getNeedAllFields()==true);
        assertTrue(cogroupRelevantFields1.getNeedNoFields()==false);
        assertTrue(cogroupRelevantFields1.getFields()==null);
    }
View Full Code Here

            LogicalOperator before,
            Map<Integer, Integer> projectionMapping)
    throws VisitorException, FrontendException {
        // Fix up COGroup internal wiring
        if (before instanceof LOCogroup) {
            LOCogroup cg = (LOCogroup) before ;
            cg.switchGroupByPlanOp(after, newNode);
        }
        if (before instanceof LOJoin) {
            LOJoin frj = (LOJoin) before ;
            frj.switchJoinColPlanOp(after, newNode);
        }
View Full Code Here

TOP

Related Classes of org.apache.pig.impl.logicalLayer.LOCogroup

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.