Class ParquetFieldIdColumnResolverFactory
java.lang.Object
io.deephaven.parquet.table.location.ParquetFieldIdColumnResolverFactory
- All Implemented Interfaces:
ParquetColumnResolver.Factory
public final class ParquetFieldIdColumnResolverFactory
extends Object
implements ParquetColumnResolver.Factory
This
ParquetColumnResolver.Factory resolves Parquet columns via field ids. The field ids
are considered for resolution no matter what level in the schema they exist. For example, the following schema has
field ids at different levels:
message root {
required int32 X = 42;
required group Y (LIST) = 43 {
repeated group list {
required int32 element;
}
}
required group Z (LIST) {
repeated group list {
required int32 element = 44;
}
}
}
In this example, 42 would be resolvable to [X], 43 would be resolvable to
[Y, list, element], and 44 would be resolvable to [Z, list, element].
If a schema has ambiguous field ids (according to this implementation's definition), the resolution will fail if the user requests those field ids. For example:
message root {
required int32 X = 42;
required group Y (LIST) = 43 {
repeated group list {
required int32 element;
}
}
required group Z (LIST) {
repeated group list {
required int32 element = 42;
}
}
}
In this example, if 42 was requested, resolution would fail because it is ambiguous between paths [X]
and [Z, list, element]. If 43 was requested, resolution would succeed.-
Method Summary
Modifier and TypeMethodDescriptionof(TableKey tableKey, ParquetTableLocationKey tableLocationKey) Equivalent toof(tableLocationKey.getFileReader().getSchema()).Creates a field id column resolver factory.of(org.apache.parquet.schema.MessageType schema) Resolves the requested field ids forschema.
-
Method Details
-
of
Creates a field id column resolver factory.- Parameters:
columnNameToFieldId- a map from Deephaven column names to field ids- Returns:
- the column resolver provider
-
of
Resolves the requested field ids forschema.- Parameters:
schema- the schema- Returns:
- the resolver map
-
of
Equivalent toof(tableLocationKey.getFileReader().getSchema()).- Specified by:
ofin interfaceParquetColumnResolver.Factory- Parameters:
tableKey- the table keytableLocationKey- the Parquet TLK- Returns:
- the resolver map
- See Also:
-