private FieldList(Iterable<Field> fields) { this.fields = ImmutableList.copyOf(fields); ImmutableMap.Builder<String, Integer> nameIndexBuilder = ImmutableMap.builder(); int index = 0; for (Field field : fields) { nameIndexBuilder.put(field.getName(), index); index++; } this.nameIndex = nameIndexBuilder.build(); }
private void compareFieldSchemas(Field expected, Field value) { assertEquals(expected, value); assertEquals(expected.getName(), value.getName()); assertEquals(expected.getType(), value.getType()); assertEquals(expected.getMode(), value.getMode()); assertEquals(expected.getDescription(), value.getDescription()); assertEquals(expected.getSubFields(), value.getSubFields()); } }
@Test public void testBuilder() { assertEquals(FIELD_NAME1, FIELD_SCHEMA1.getName()); assertEquals(FIELD_TYPE1, FIELD_SCHEMA1.getType()); assertEquals(FIELD_MODE1, FIELD_SCHEMA1.getMode()); assertEquals(FIELD_DESCRIPTION1, FIELD_SCHEMA1.getDescription()); assertEquals(null, FIELD_SCHEMA1.getSubFields()); assertEquals(FIELD_NAME3, FIELD_SCHEMA3.getName()); assertEquals(FIELD_TYPE3, FIELD_SCHEMA3.getType()); assertEquals(FIELD_MODE3, FIELD_SCHEMA3.getMode()); assertEquals(FIELD_DESCRIPTION3, FIELD_SCHEMA3.getDescription()); assertEquals(FieldList.of(FIELD_SCHEMA1, FIELD_SCHEMA2), FIELD_SCHEMA3.getSubFields()); }
TimePartitioning partitioning = TimePartitioning.of(Type.DAY); Clustering clustering = Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder()
private FieldList(Iterable<Field> fields) { this.fields = ImmutableList.copyOf(fields); ImmutableMap.Builder<String, Integer> nameIndexBuilder = ImmutableMap.builder(); int index = 0; for (Field field : fields) { nameIndexBuilder.put(field.getName(), index); index++; } this.nameIndex = nameIndexBuilder.build(); }
private org.apache.avro.Schema inferSchemaField(Field field) { String name = field.getName(); Field.Type sqlType = field.getType(); Field.Mode mode = field.getMode(); // Get the "basic" type of the field. org.apache.avro.Schema fieldSchema = inferSchemaFieldWithoutMode(field); // BigQuery fields are NULLABLE by default. if (Field.Mode.NULLABLE == mode || mode == null) { fieldSchema = AvroUtils.wrapAsNullable(fieldSchema); } else if (Field.Mode.REPEATED == mode) { // Determine if the field is an array. // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#array-type fieldSchema = SchemaBuilder.array().items(fieldSchema); } return fieldSchema; }
private org.apache.avro.Schema inferSchemaField(Field field) { String name = field.getName(); Field.Type sqlType = field.getType(); Field.Mode mode = field.getMode(); // Get the "basic" type of the field. org.apache.avro.Schema fieldSchema = inferSchemaFieldWithoutMode(field); // BigQuery fields are NULLABLE by default. if (Field.Mode.NULLABLE == mode || mode == null) { fieldSchema = AvroUtils.wrapAsNullable(fieldSchema); } else if (Field.Mode.REPEATED == mode) { // Determine if the field is an array. // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#array-type fieldSchema = SchemaBuilder.array().items(fieldSchema); } return fieldSchema; }
private org.apache.avro.Schema inferBigQuerySchema(Schema schema) { List<Field> bqFields = schema.getFields(); if (bqFields.size() == 0) { return SchemaBuilder.builder().record("EmptyRecord").fields().endRecord(); } SchemaBuilder.FieldAssembler<org.apache.avro.Schema> fieldAssembler = SchemaBuilder.record("BigQuerySchema").fields(); for (Field bqField : bqFields) { String name = bqField.getName(); org.apache.avro.Schema fieldSchema = inferSchemaField(bqField); fieldAssembler = fieldAssembler.name(name).type(fieldSchema).noDefault(); } return fieldAssembler.endRecord(); }
private org.apache.avro.Schema inferBigQuerySchema(Schema schema) { List<Field> bqFields = schema.getFields(); if (bqFields.size() == 0) { return SchemaBuilder.builder().record("EmptyRecord").fields().endRecord(); } SchemaBuilder.FieldAssembler<org.apache.avro.Schema> fieldAssembler = SchemaBuilder.record("BigQuerySchema").fields(); for (Field bqField : bqFields) { String name = bqField.getName(); org.apache.avro.Schema fieldSchema = inferSchemaField(bqField); fieldAssembler = fieldAssembler.name(name).type(fieldSchema).noDefault(); } return fieldAssembler.endRecord(); }