Search in sources :

Example 1 with DefaultTuple

use of org.apache.pig.data.DefaultTuple in project pygmalion by jeromatron.

the class RangeBasedStringConcatTest method testRange.

@Test
public void testRange() throws Exception {
    RangeBasedStringConcat rbsc = new RangeBasedStringConcat("0,1", " ");
    Tuple input = new DefaultTuple();
    for (String field : fields) {
        input.append(field);
    }
    String result = rbsc.exec(input);
    assertEquals("a b", result);
    rbsc = new RangeBasedStringConcat("2,6", " ");
    result = rbsc.exec(input);
    assertEquals("c g", result);
    //test out of range
    rbsc = new RangeBasedStringConcat("0,9,1000", " ");
    result = rbsc.exec(input);
    assertEquals("a", result);
    Tuple innerTuple = new DefaultTuple();
    innerTuple.append("j");
    innerTuple.append("k");
    input.append(innerTuple);
    rbsc = new RangeBasedStringConcat("0,9", " ");
    result = rbsc.exec(input);
    assertEquals("a j k", result);
    DataBag db = new DefaultDataBag();
    Tuple dbTuple = new DefaultTuple();
    dbTuple.append("l");
    dbTuple.append("m");
    db.add(dbTuple);
    innerTuple.append(db);
    rbsc = new RangeBasedStringConcat("0,9,10", " ");
    result = rbsc.exec(input);
    assertEquals("a j k l m", result);
}
Also used : DataBag(org.apache.pig.data.DataBag) DefaultDataBag(org.apache.pig.data.DefaultDataBag) DefaultTuple(org.apache.pig.data.DefaultTuple) RangeBasedStringConcat(org.pygmalion.udf.RangeBasedStringConcat) DefaultDataBag(org.apache.pig.data.DefaultDataBag) DefaultTuple(org.apache.pig.data.DefaultTuple) Tuple(org.apache.pig.data.Tuple) Test(org.junit.Test)

Example 2 with DefaultTuple

use of org.apache.pig.data.DefaultTuple in project pygmalion by jeromatron.

the class RangeBasedStringConcatTest method testAllConcat.

@Test
public void testAllConcat() throws Exception {
    RangeBasedStringConcat rbsc = new RangeBasedStringConcat("ALL", " ");
    Tuple input = new DefaultTuple();
    for (int i = 0; i < fields.length; i++) {
        input.append(fields[i]);
    }
    String result = rbsc.exec(input);
    assertEquals("a b c d e f g h i", result);
    Tuple innerTuple = new DefaultTuple();
    innerTuple.append("j");
    innerTuple.append("k");
    input.append(innerTuple);
    result = rbsc.exec(input);
    assertEquals("a b c d e f g h i j k", result);
    DataBag db = new DefaultDataBag();
    Tuple dbTuple = new DefaultTuple();
    dbTuple.append("l");
    dbTuple.append("m");
    db.add(dbTuple);
    innerTuple.append(db);
    result = rbsc.exec(input);
    assertEquals("a b c d e f g h i j k l m", result);
}
Also used : DataBag(org.apache.pig.data.DataBag) DefaultDataBag(org.apache.pig.data.DefaultDataBag) DefaultTuple(org.apache.pig.data.DefaultTuple) RangeBasedStringConcat(org.pygmalion.udf.RangeBasedStringConcat) DefaultDataBag(org.apache.pig.data.DefaultDataBag) DefaultTuple(org.apache.pig.data.DefaultTuple) Tuple(org.apache.pig.data.Tuple) Test(org.junit.Test)

Example 3 with DefaultTuple

use of org.apache.pig.data.DefaultTuple in project pygmalion by jeromatron.

the class ToCassandraBagTest method test.

@Test
public void test() throws Exception {
    ToCassandraBag tcb = new ToCassandraBag();
    UDFContext context = UDFContext.getUDFContext();
    Properties properties = context.getUDFProperties(ToCassandraBag.class);
    Tuple input = new DefaultTuple();
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < fields.length; i++) {
        builder.append(fields[i]);
        input.append("foo" + i);
        if (i < fields.length - 1) {
            builder.append(',');
        }
    }
    properties.setProperty(ToCassandraBag.UDFCONTEXT_SCHEMA_KEY + ".default_context", builder.toString());
    Tuple tuple = tcb.exec(input);
    assertNotNull("Tuple is null", tuple);
    assertEquals(2, tuple.size());
    //first is the key, rest is a set of columns
    Object one = tuple.get(0);
    assertTrue(one instanceof String);
    Object two = tuple.get(1);
    assertTrue(two instanceof DataBag);
    //Bad input
    input = new DefaultTuple();
    input.append(null);
    input.append("foo");
    try {
        tcb.exec(input);
        assertTrue(false);
    } catch (IOException e) {
    //expected
    }
    input = new DefaultTuple();
    builder.setLength(0);
    for (int i = 0; i < fields.length - 1; i++) {
        builder.append(fields[i]);
        input.append("foo" + i);
        if (i < fields.length - 1) {
            builder.append(',');
        }
    }
    properties.setProperty(ToCassandraBag.UDFCONTEXT_SCHEMA_KEY + ".default_context", builder.toString());
    input.append("foo extra");
    try {
        tcb.exec(input);
        assertTrue(false);
    } catch (IOException e) {
    }
}
Also used : DataBag(org.apache.pig.data.DataBag) ToCassandraBag(org.pygmalion.udf.ToCassandraBag) DefaultTuple(org.apache.pig.data.DefaultTuple) UDFContext(org.apache.pig.impl.util.UDFContext) IOException(java.io.IOException) Properties(java.util.Properties) DefaultTuple(org.apache.pig.data.DefaultTuple) Tuple(org.apache.pig.data.Tuple) Test(org.junit.Test)

Aggregations

DataBag (org.apache.pig.data.DataBag)3 DefaultTuple (org.apache.pig.data.DefaultTuple)3 Tuple (org.apache.pig.data.Tuple)3 Test (org.junit.Test)3 DefaultDataBag (org.apache.pig.data.DefaultDataBag)2 RangeBasedStringConcat (org.pygmalion.udf.RangeBasedStringConcat)2 IOException (java.io.IOException)1 Properties (java.util.Properties)1 UDFContext (org.apache.pig.impl.util.UDFContext)1 ToCassandraBag (org.pygmalion.udf.ToCassandraBag)1