.build(); PartitionStrategy withColor = new PartitionStrategy.Builder() .range("color", "blue", "green", "red") .year("timestamp") .month("timestamp")
@Test public void testAllowedPartitionSchemaCombinations() { Compatibility.checkDescriptor( new DatasetDescriptor.Builder() .schema(schema) .partitionStrategy(new PartitionStrategy.Builder() .year("timestamp") .month("timestamp") .day("timestamp") .hour("timestamp") .minute("timestamp") .identity("message", "message_copy") .identity("timestamp", "ts") .identity("number", "num") .hash("message", 48) .hash("timestamp", 48) .hash("number", 48) .hash("payload", 48) .hash("float", 48) .hash("double", 48) .hash("bool", 48) .range("number", 5, 10, 15, 20) .range("message", "m", "z", "M", "Z") .build()) .build()); }
@Override public void run() { new DatasetDescriptor.Builder() .schema(SchemaBuilder.record("Record").fields() .requiredInt("number") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .range("number", "m", "z") .build()) .build(); } });
@Override public void run() { new DatasetDescriptor.Builder() .schema(SchemaBuilder.record("Record").fields() .requiredString("username") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .range("number", 5, 10, 15) .build()) .build(); } });
@Test public void testRange() { PartitionStrategy rangeStrategy = new PartitionStrategy.Builder() .range("color", "blue", "green", "orange", "red", "white") .build(); PartitionStrategy copy = new PartitionExpression( PartitionExpression.toExpression(rangeStrategy), true).evaluate(); Assert.assertEquals(rangeStrategy, copy); }
@Test public void testIntRange() { PartitionStrategy intRangeStrategy = new PartitionStrategy.Builder() .range("intField", 5, 10, 15, 20, 25) .build(); PartitionStrategy copy = new PartitionExpression( PartitionExpression.toExpression(intRangeStrategy), true).evaluate(); Assert.assertEquals(intRangeStrategy, copy); }