@Test public void testAliases1() throws TupleMRException { TupleMRConfigBuilder b = new TupleMRConfigBuilder(); b.addIntermediateSchema( new Schema("schema1", Fields.parse("ax:int,bx:string,cx:string,blablax:string,p2:string"))); b.addIntermediateSchema( new Schema("schema2", Fields.parse("ay:int,cy:string,by:string,blobloy:string,p:string"))); { Aliases aliases1 = new Aliases(); aliases1.add("a", "ax"); aliases1.add("b", "bx"); aliases1.add("c", "cx"); aliases1.add("blabla", "blablax"); aliases1.add("p", "p2"); b.setFieldAliases("schema1", aliases1); } { Aliases aliases2 = new Aliases(); aliases2.add("a", "ay"); aliases2.add("b", "by"); aliases2.add("c", "cy"); aliases2.add("bloblo", "blobloy"); b.setFieldAliases("schema2", aliases2); } b.setGroupByFields("c", "b"); b.setOrderBy( new OrderBy() .add("b", Order.ASC) .add("c", Order.DESC) .addSchemaOrder(Order.DESC) .add("a", Order.DESC)); b.setSpecificOrderBy("schema1", new OrderBy().add("blabla", Order.DESC)); b.setCustomPartitionFields("p"); TupleMRConfig config = b.buildConf(); SerializationInfo serInfo = config.getSerializationInfo(); System.out.println(serInfo.getCommonSchema()); System.out.println(serInfo.getPartitionFieldsIndexes()); { List<SortElement> expectedCommon = new ArrayList<SortElement>(); expectedCommon.add(new SortElement("b", Order.ASC, Criteria.NullOrder.NULL_SMALLEST)); expectedCommon.add(new SortElement("c", Order.DESC, Criteria.NullOrder.NULL_SMALLEST)); Assert.assertEquals(new Criteria(expectedCommon), config.getCommonCriteria()); } { List<SortElement> expectedSchema1 = new ArrayList<SortElement>(); expectedSchema1.add(new SortElement("a", Order.DESC, Criteria.NullOrder.NULL_SMALLEST)); expectedSchema1.add(new SortElement("blabla", Order.DESC, Criteria.NullOrder.NULL_SMALLEST)); Assert.assertEquals(new Criteria(expectedSchema1), config.getSpecificOrderBys().get(0)); } { List<SortElement> expectedSchema2 = new ArrayList<SortElement>(); expectedSchema2.add(new SortElement("a", Order.DESC, Criteria.NullOrder.NULL_SMALLEST)); Assert.assertEquals(new Criteria(expectedSchema2), config.getSpecificOrderBys().get(1)); } }
@Test(expected = TupleMRException.class) public void testAliasesUnknownSchema() throws TupleMRException { TupleMRConfigBuilder b = new TupleMRConfigBuilder(); b.addIntermediateSchema( new Schema("schema1", Fields.parse("a:int,b:string,c:string,blabla:string"))); b.setFieldAliases("schemaX", new Aliases().add("bx", "b")); }
@Test public void testWithFieldAliases() throws TupleMRException, IOException { TupleMRConfigBuilder b = new TupleMRConfigBuilder(); Schema schema1 = new Schema( "schema1", Fields.parse("user_id:int,operation:string,age:long,timestamp:int,country:string")); Schema schema2 = new Schema("schema2", Fields.parse("id:int,op:string,another_id:int,time:int")); b.addIntermediateSchema(schema1); b.addIntermediateSchema(schema2); b.setFieldAliases("schema1", new Aliases().add("id", "user_id").add("op", "operation")); b.setFieldAliases("schema2", new Aliases().add("timestamp", "time")); b.setGroupByFields("id", "op"); b.setOrderBy( new OrderBy() .add("op", Order.ASC) .add("id", Order.DESC) .addSchemaOrder(Order.DESC) .add("timestamp", Order.DESC)); b.setSpecificOrderBy("schema1", new OrderBy().add("country", Order.DESC)); TupleMRConfig conf = b.buildConf(); Configuration hconf = new Configuration(); TupleMRConfig.set(conf, hconf); TupleMRConfig deserConf = TupleMRConfig.get(hconf); System.out.println(conf); System.out.println("------------"); System.out.println(deserConf); Assert.assertEquals(conf, deserConf); hconf = new Configuration(); TupleMRConfig.set(deserConf, hconf); TupleMRConfig deserConf2 = TupleMRConfig.get(hconf); Assert.assertEquals(conf, deserConf2); }