Search in sources :

Example 91 with PigServer

use of org.apache.pig.PigServer in project pigeon by aseldawy.

the class TestBreak method testShouldWorkWithGeometryCollection.

public void testShouldWorkWithGeometryCollection() throws Exception {
    ArrayList<String[]> data = new ArrayList<String[]>();
    data.add(new String[] { "1", "GEOMETRYCOLLECTION (POLYGON ((0 0, 0 1, 1 0, 0 0)))" });
    String datafile = TestHelper.createTempFile(data, "\t");
    datafile = datafile.replace("\\", "\\\\");
    PigServer pig = new PigServer(LOCAL);
    String query = "A = LOAD 'file:" + datafile + "' as (geom_id: int, geom);\n" + "B = FOREACH A GENERATE geom_id, FLATTEN(" + Break.class.getName() + "(geom));";
    pig.registerQuery(query);
    Iterator<?> it = pig.openIterator("B");
    Vector<String[]> expectedResults = new Vector<String[]>();
    expectedResults.add(new String[] { "1", "0", "0", "0", "0", "1" });
    expectedResults.add(new String[] { "1", "1", "0", "1", "1", "0" });
    expectedResults.add(new String[] { "1", "2", "1", "0", "0", "0" });
    Iterator<String[]> expected = expectedResults.iterator();
    int count = 0;
    while (it.hasNext() && expected.hasNext()) {
        Tuple tuple = (Tuple) it.next();
        String[] expectedResult = expected.next();
        if (tuple == null)
            break;
        assertEquals(Integer.parseInt(expectedResult[0]), tuple.get(0));
        assertEquals(Integer.parseInt(expectedResult[1]), tuple.get(1));
        assertEquals(Double.parseDouble(expectedResult[2]), tuple.get(2));
        assertEquals(Double.parseDouble(expectedResult[3]), tuple.get(3));
        assertEquals(Double.parseDouble(expectedResult[4]), tuple.get(4));
        assertEquals(Double.parseDouble(expectedResult[5]), tuple.get(5));
        count++;
    }
    assertEquals(expectedResults.size(), count);
}
Also used : PigServer(org.apache.pig.PigServer) ArrayList(java.util.ArrayList) Vector(java.util.Vector) Tuple(org.apache.pig.data.Tuple)

Example 92 with PigServer

use of org.apache.pig.PigServer in project pigeon by aseldawy.

the class TestBreak method testShouldWorkWithPolygon.

public void testShouldWorkWithPolygon() throws Exception {
    ArrayList<String[]> data = new ArrayList<String[]>();
    data.add(new String[] { "1", "POLYGON ((0 0, 0 1, 1 0, 0 0))" });
    String datafile = TestHelper.createTempFile(data, "\t");
    datafile = datafile.replace("\\", "\\\\");
    PigServer pig = new PigServer(LOCAL);
    String query = "A = LOAD 'file:" + datafile + "' as (geom_id: int, geom);\n" + "B = FOREACH A GENERATE geom_id, FLATTEN(" + Break.class.getName() + "(geom));";
    pig.registerQuery(query);
    Iterator<?> it = pig.openIterator("B");
    Vector<String[]> expectedResults = new Vector<String[]>();
    expectedResults.add(new String[] { "1", "0", "0", "0", "0", "1" });
    expectedResults.add(new String[] { "1", "1", "0", "1", "1", "0" });
    expectedResults.add(new String[] { "1", "2", "1", "0", "0", "0" });
    Iterator<String[]> expected = expectedResults.iterator();
    int count = 0;
    while (it.hasNext() && expected.hasNext()) {
        Tuple tuple = (Tuple) it.next();
        String[] expectedResult = expected.next();
        if (tuple == null)
            break;
        assertEquals(Integer.parseInt(expectedResult[0]), tuple.get(0));
        assertEquals(Integer.parseInt(expectedResult[1]), tuple.get(1));
        assertEquals(Double.parseDouble(expectedResult[2]), tuple.get(2));
        assertEquals(Double.parseDouble(expectedResult[3]), tuple.get(3));
        assertEquals(Double.parseDouble(expectedResult[4]), tuple.get(4));
        assertEquals(Double.parseDouble(expectedResult[5]), tuple.get(5));
        count++;
    }
    assertEquals(expectedResults.size(), count);
}
Also used : PigServer(org.apache.pig.PigServer) ArrayList(java.util.ArrayList) Vector(java.util.Vector) Tuple(org.apache.pig.data.Tuple)

Example 93 with PigServer

use of org.apache.pig.PigServer in project pigeon by aseldawy.

the class TestBreak method testShouldSkipPoints.

public void testShouldSkipPoints() throws Exception {
    ArrayList<String[]> data = new ArrayList<String[]>();
    data.add(new String[] { "1", "GEOMETRYCOLLECTION (POLYGON ((0 0, 0 1, 1 0, 0 0)), POINT (5 5))" });
    String datafile = TestHelper.createTempFile(data, "\t");
    datafile = datafile.replace("\\", "\\\\");
    PigServer pig = new PigServer(LOCAL);
    String query = "A = LOAD 'file:" + datafile + "' as (geom_id: int, geom);\n" + "B = FOREACH A GENERATE geom_id, FLATTEN(" + Break.class.getName() + "(geom));";
    pig.registerQuery(query);
    Iterator<?> it = pig.openIterator("B");
    Vector<String[]> expectedResults = new Vector<String[]>();
    expectedResults.add(new String[] { "1", "0", "0", "0", "0", "1" });
    expectedResults.add(new String[] { "1", "1", "0", "1", "1", "0" });
    expectedResults.add(new String[] { "1", "2", "1", "0", "0", "0" });
    Iterator<String[]> expected = expectedResults.iterator();
    int count = 0;
    while (it.hasNext() && expected.hasNext()) {
        Tuple tuple = (Tuple) it.next();
        String[] expectedResult = expected.next();
        if (tuple == null)
            break;
        assertEquals(Integer.parseInt(expectedResult[0]), tuple.get(0));
        assertEquals(Integer.parseInt(expectedResult[1]), tuple.get(1));
        assertEquals(Double.parseDouble(expectedResult[2]), tuple.get(2));
        assertEquals(Double.parseDouble(expectedResult[3]), tuple.get(3));
        assertEquals(Double.parseDouble(expectedResult[4]), tuple.get(4));
        assertEquals(Double.parseDouble(expectedResult[5]), tuple.get(5));
        count++;
    }
    assertEquals(expectedResults.size(), count);
}
Also used : PigServer(org.apache.pig.PigServer) ArrayList(java.util.ArrayList) Vector(java.util.Vector) Tuple(org.apache.pig.data.Tuple)

Example 94 with PigServer

use of org.apache.pig.PigServer in project pigeon by aseldawy.

the class TestBuffer method testShouldWorkWithDoubleBuffer.

public void testShouldWorkWithDoubleBuffer() throws Exception {
    ArrayList<String[]> data = new ArrayList<String[]>();
    data.add(new String[] { "1", "LINESTRING (0 0, 0 3, 4 5, 10 0)" });
    String datafile = TestHelper.createTempFile(data, "\t");
    datafile = datafile.replace("\\", "\\\\");
    PigServer pig = new PigServer(LOCAL);
    String query = "A = LOAD 'file:" + datafile + "' as (id, geom);\n" + "B = FOREACH A GENERATE " + Buffer.class.getName() + "(geom, 1.0);";
    pig.registerQuery(query);
    Iterator<?> it = pig.openIterator("B");
    ArrayList<String> geometries = new ArrayList<String>();
    geometries.add(OGCGeometry.fromText("LINESTRING (0 0, 0 3, 4 5, 10 0)").buffer(1.0).asText());
    Iterator<String> geoms = geometries.iterator();
    while (it.hasNext() && geoms.hasNext()) {
        Tuple tuple = (Tuple) it.next();
        if (tuple == null)
            break;
        String exptected_result = geoms.next();
        TestHelper.assertGeometryEqual(exptected_result, tuple.get(0));
    }
}
Also used : PigServer(org.apache.pig.PigServer) ArrayList(java.util.ArrayList) Tuple(org.apache.pig.data.Tuple)

Example 95 with PigServer

use of org.apache.pig.PigServer in project pigeon by aseldawy.

the class TestConnect method testShouldWorkWithDirectPolygon.

public void testShouldWorkWithDirectPolygon() throws Exception {
    ArrayList<String[]> data = new ArrayList<String[]>();
    data.add(new String[] { "1", "2", "LINESTRING(0 0, 2 0, 3 1)" });
    data.add(new String[] { "2", "3", "LINESTRING(3 1, 2 2)" });
    data.add(new String[] { "3", "1", "LINESTRING(2 2, 1 2, 0 0)" });
    String datafile = TestHelper.createTempFile(data, "\t");
    datafile = datafile.replace("\\", "\\\\");
    PigServer pig = new PigServer(LOCAL);
    String query = "A = LOAD 'file:" + datafile + "' AS (first_point: long, last_point: long, linestring: chararray);\n" + "B = GROUP A ALL;" + "C = FOREACH B GENERATE " + Connect.class.getName() + "(A.first_point, A.last_point, A.linestring);";
    pig.registerQuery(query);
    Iterator<?> it = pig.openIterator("C");
    String expectedResult = "Polygon((0 0, 2 0, 3 1, 2 2, 1 2, 0 0))";
    int count = 0;
    while (it.hasNext()) {
        Tuple tuple = (Tuple) it.next();
        if (tuple == null)
            break;
        TestHelper.assertGeometryEqual(expectedResult, tuple.get(0));
        count++;
    }
    assertEquals(1, count);
}
Also used : PigServer(org.apache.pig.PigServer) ArrayList(java.util.ArrayList) Tuple(org.apache.pig.data.Tuple)

Aggregations

PigServer (org.apache.pig.PigServer)115 Tuple (org.apache.pig.data.Tuple)74 ArrayList (java.util.ArrayList)70 Test (org.junit.Test)59 HCatBaseTest (org.apache.hive.hcatalog.mapreduce.HCatBaseTest)37 Data (org.apache.pig.builtin.mock.Storage.Data)15 File (java.io.File)14 Schema (org.apache.pig.impl.logicalLayer.schema.Schema)14 FieldSchema (org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema)9 Properties (java.util.Properties)8 Vector (java.util.Vector)8 HCatFieldSchema (org.apache.hive.hcatalog.data.schema.HCatFieldSchema)6 Path (org.apache.hadoop.fs.Path)4 FileWriter (java.io.FileWriter)3 List (java.util.List)3 Map (java.util.Map)3 Admin (org.apache.hadoop.hbase.client.Admin)3 Connection (org.apache.hadoop.hbase.client.Connection)3 Pair (org.apache.hive.hcatalog.data.Pair)3 ExecJob (org.apache.pig.backend.executionengine.ExecJob)3