@Test public void testSwitchNamespace() { String originalNamespace = "originalNamespace"; String originalName = "originalName"; String newNamespace = "newNamespace"; Schema schema = SchemaBuilder.builder(originalNamespace).record(originalName).fields(). requiredDouble("double").optionalFloat("float").endRecord(); Map<String, String> map = Maps.newHashMap(); map.put(originalNamespace, newNamespace); Schema newSchema = AvroUtils.switchNamespace(schema, map); Assert.assertEquals(newSchema.getNamespace(), newNamespace); Assert.assertEquals(newSchema.getName(), originalName); for(Schema.Field field : newSchema.getFields()) { Assert.assertEquals(field, schema.getField(field.name())); } }
values.put("stringKey", "abc"); Schema s = SchemaBuilder.builder().record("MyRecord") .fields().name("myField") .prop("mapProp", values)
values.add("abc"); Schema s = SchemaBuilder.builder().record("MyRecord") .fields().name("myField") .prop("arrayProp", values)
@Test public void testGetColumnsWhenSchemaHaveSameColumns() { Schema remoteSchema = SchemaBuilder.builder().record("record").fields().requiredString("name").requiredInt("age") .requiredInt("year").endRecord(); Schema inputSchema = SchemaBuilder.builder().record("record").fields().requiredString("name").requiredInt("age") .requiredInt("year").endRecord(); List<Field> resultFieldList = DynamicSchemaUtils.getCommonFieldsForDynamicSchema(remoteSchema, inputSchema); Assert.assertEquals(remoteSchema.getFields().size(), resultFieldList.size()); Assert.assertEquals(inputSchema.getFields().size(), resultFieldList.size()); Assert.assertThat(resultFieldList, CoreMatchers.is(remoteSchema.getFields())); } }
@Test public void testGetCommonFieldsWithNotSetInputSchema() { exception.expect(ComponentException.class); exception.expectMessage(I18N_MESSAGES.getMessage("error.message.inputSchemaNotSet")); Schema remoteSchema = SchemaBuilder.builder().record("record").fields().requiredInt("age").endRecord(); DynamicSchemaUtils.getCommonFieldsForDynamicSchema(remoteSchema, null); }
public static Schema createSPSchema3(String tablename) { FieldAssembler<Schema> builder = SchemaBuilder.builder().record(tablename).fields(); Schema schema = AvroUtils._int(); schema = wrap(schema); builder = builder.name("PARAMETER1").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "PARAMETER1").type(schema) .noDefault(); schema = AvroUtils._string(); schema = wrap(schema); builder = builder.name("PARAMETER2").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "PARAMETER2").type(schema) .noDefault(); return builder.endRecord(); }
public static Schema createSPSchema1(String tablename) { FieldAssembler<Schema> builder = SchemaBuilder.builder().record(tablename).fields(); Schema schema = AvroUtils._int(); schema = wrap(schema); builder = builder.name("PARAMETER").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "PARAMETER").type(schema) .noDefault(); return builder.endRecord(); }
public static Schema createTestSchema2(String tablename) { FieldAssembler<Schema> builder = SchemaBuilder.builder().record(tablename).fields(); Schema schema = AvroUtils._int(); schema = wrap(schema); builder = builder.name("ID").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "ID") .prop(SchemaConstants.TALEND_COLUMN_IS_KEY, "true").type(schema).noDefault(); schema = AvroUtils._string(); schema = wrap(schema); builder = builder.name("NAME").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "NAME").type(schema).noDefault(); return builder.endRecord(); }
private Schema createTestSchema() { FieldAssembler<Schema> builder = SchemaBuilder.builder().record("TEST").fields(); Schema schema = AvroUtils._int(); schema = wrap(schema); builder = builder.name("ID").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "ID1") .prop(SchemaConstants.TALEND_COLUMN_IS_KEY, "true").type(schema).noDefault(); schema = AvroUtils._string(); schema = wrap(schema); builder = builder.name("NAME").prop(SchemaConstants.TALEND_COLUMN_DB_COLUMN_NAME, "NAME1").type(schema).noDefault(); return builder.endRecord(); }
/** * Creates empty record schema, i.e. record schema, which has no fields. "EmptyRecord" name is used for this schema * * @return empty record schema */ public static Schema createEmptySchema() { Schema emptySchema = SchemaBuilder.builder().record("EmptySchema").fields().endRecord(); //$NON-NLS-1$ return emptySchema; }
/** * Create a builder for an Avro record with the specified name. * This is equivalent to: * <pre> * builder().record(name); * </pre> * @param name the record name */ public static RecordBuilder<Schema> record(String name) { return builder().record(name); }
@Test public void testFieldObjectProps() { Schema s = SchemaBuilder.builder().record("MyRecord") .fields().name("myField") .prop("booleanProp", true)
.name("myint").type().intType().noDefault() .endRecord(); Schema s4 = SchemaBuilder.builder("org.example").record("myrecord") .fields() .name("myint").type().intType().noDefault()
Schema schema = SchemaBuilder.builder() .record("test_primitive_types").fields() .name("CString").type("string").noDefault() .name("CBytes").type("bytes").noDefault()
.record("test_union_types").fields() .name("CUString").type().optional().stringType() .name("CUBytes").type().optional().bytesType()
public static File generateEnumTypes(String filename, int nrows, String[][] categories) throws IOException { assert categories.length == 2 : "Needs only 2 columns"; File parentDir = Files.createTempDir(); File f = new File(parentDir, filename); DatumWriter<GenericRecord> w = new GenericDatumWriter<GenericRecord>(); DataFileWriter<GenericRecord> dw = new DataFileWriter<GenericRecord>(w); Schema enumSchema1 = SchemaBuilder.enumeration("CEnum1").symbols(categories[0]); Schema enumSchema2 = SchemaBuilder.enumeration("CEnum2").symbols(categories[1]); Schema schema = SchemaBuilder.builder() .record("test_enum_types").fields() .name("CEnum").type(enumSchema1).noDefault() .name("CUEnum").type().optional().type(enumSchema2) .endRecord(); System.out.println(schema); int numOfCategories1 = categories[0].length; int numOfCategories2 = categories[1].length; try { dw.create(schema, f); for (int i = 0; i < nrows; i++) { GenericRecord gr = new GenericData.Record(schema); gr.put("CEnum", new GenericData.EnumSymbol(enumSchema1, categories[0][i % numOfCategories1])); gr.put("CUEnum", i % (numOfCategories2+1) == 0 ? null : new GenericData.EnumSymbol(enumSchema2, categories[1][i % numOfCategories2])); dw.append(gr); } return f; } finally { dw.close();; } }
/** * Create a builder for an Avro record with the specified name. * This is equivalent to: * <pre> * builder().record(name); * </pre> * @param name the record name */ public static RecordBuilder<Schema> record(String name) { return builder().record(name); }
/** * Create a builder for an Avro record with the specified name. * This is equivalent to: * <pre> * builder().record(name); * </pre> * @param name the record name */ public static RecordBuilder<Schema> record(String name) { return builder().record(name); }
@Test public void testFixedDefaultValueDrop() { Schema md5 = SchemaBuilder.builder().fixed("MD5").size(16); Schema frec = SchemaBuilder.builder().record("test") .fields().name("hash").type(md5).withDefault(new byte[16]).endRecord(); Schema.Field field = frec.getField("hash"); Assert.assertNotNull(field.defaultVal()); Assert.assertArrayEquals(new byte[16], (byte[]) field.defaultVal()); }
@Test(expected = AvroRuntimeException.class) public void testFieldNullObjectProp() { SchemaBuilder.builder().record("MyRecord") .fields().name("myField") .prop("nullProp", (Object) null) .type().intType() .noDefault() .endRecord(); }