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);
}
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);
}
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) {
}
}
Aggregations