public class Schema
extends java.lang.Object
implements java.io.Serializable
Constructor and Description |
---|
Schema(java.util.List<Types.NestedField> columns) |
Schema(java.util.List<Types.NestedField> columns,
java.util.Map<java.lang.String,java.lang.Integer> aliases) |
Schema(Types.NestedField... columns) |
Modifier and Type | Method and Description |
---|---|
Accessor<StructLike> |
accessorForField(int id)
Returns an accessor for retrieving the data from
StructLike . |
java.lang.Integer |
aliasToId(java.lang.String alias)
Returns the column id for the given column alias.
|
Types.StructType |
asStruct()
Returns the underlying
struct type for this schema. |
Types.NestedField |
caseInsensitiveFindField(java.lang.String name)
Returns a sub-field by name as a
Types.NestedField . |
Schema |
caseInsensitiveSelect(java.util.Collection<java.lang.String> names)
Creates a projection schema for a subset of columns, selected by case insensitive names
|
Schema |
caseInsensitiveSelect(java.lang.String... names)
Creates a projection schema for a subset of columns, selected by case insensitive names
|
java.util.List<Types.NestedField> |
columns()
Returns a List of the
columns in this Schema. |
java.lang.String |
findColumnName(int id)
Returns the full column name for the given id.
|
Types.NestedField |
findField(int id)
Returns the sub-field identified by the field id as a
Types.NestedField . |
Types.NestedField |
findField(java.lang.String name)
Returns a sub-field by name as a
Types.NestedField . |
Type |
findType(int id)
Returns the
Type of a sub-field identified by the field id. |
Type |
findType(java.lang.String name)
Returns the
Type of a sub-field identified by the field name. |
java.util.Map<java.lang.String,java.lang.Integer> |
getAliases()
Returns an alias map for this schema, if set.
|
java.lang.String |
idToAlias(java.lang.Integer fieldId)
Returns the full column name in the unconverted data schema for the given column id.
|
Schema |
select(java.util.Collection<java.lang.String> names)
Creates a projection schema for a subset of columns, selected by name.
|
Schema |
select(java.lang.String... names)
Creates a projection schema for a subset of columns, selected by name.
|
java.lang.String |
toString() |
public Schema(java.util.List<Types.NestedField> columns, java.util.Map<java.lang.String,java.lang.Integer> aliases)
public Schema(java.util.List<Types.NestedField> columns)
public Schema(Types.NestedField... columns)
public java.util.Map<java.lang.String,java.lang.Integer> getAliases()
Alias maps are created when translating an external schema, like an Avro Schema, to this format. The original column names can be provided in a Map when constructing this Schema.
public Types.StructType asStruct()
struct type
for this schema.public java.util.List<Types.NestedField> columns()
columns
in this Schema.public Type findType(java.lang.String name)
Type
of a sub-field identified by the field name.name
- a field namepublic Type findType(int id)
Type
of a sub-field identified by the field id.id
- a field idpublic Types.NestedField findField(int id)
Types.NestedField
.id
- a field idpublic Types.NestedField findField(java.lang.String name)
Types.NestedField
.
The result may be a top-level or a nested field.
name
- a String namepublic Types.NestedField caseInsensitiveFindField(java.lang.String name)
Types.NestedField
.
The result may be a top-level or a nested field.
name
- a String namepublic java.lang.String findColumnName(int id)
id
- a field idpublic java.lang.Integer aliasToId(java.lang.String alias)
alias
- a full column name in the unconverted data schemapublic java.lang.String idToAlias(java.lang.Integer fieldId)
fieldId
- a column id in this schemapublic Accessor<StructLike> accessorForField(int id)
StructLike
.
Accessors do not retrieve data contained in lists or maps.
id
- a column id in this schemaAccessor
to retrieve values from a StructLike
rowpublic Schema select(java.lang.String... names)
Names that identify nested fields will select part or all of the field's top-level column.
names
- String names for selected columnspublic Schema select(java.util.Collection<java.lang.String> names)
Names that identify nested fields will select part or all of the field's top-level column.
names
- a List of String names for selected columnspublic Schema caseInsensitiveSelect(java.lang.String... names)
Names that identify nested fields will select part or all of the field's top-level column.
names
- a List of String names for selected columnspublic Schema caseInsensitiveSelect(java.util.Collection<java.lang.String> names)
Names that identify nested fields will select part or all of the field's top-level column.
names
- a List of String names for selected columnspublic java.lang.String toString()
toString
in class java.lang.Object