Package org.apache.iceberg.hive
Class HiveSchemaUtil
java.lang.Object
org.apache.iceberg.hive.HiveSchemaUtil
-
Method Summary
Modifier and TypeMethodDescriptionstatic Schema
convert
(List<String> names, List<org.apache.hadoop.hive.serde2.typeinfo.TypeInfo> types, List<String> comments) Converts the Hive list of column names and column types to an Iceberg schema.static Schema
convert
(List<String> names, List<org.apache.hadoop.hive.serde2.typeinfo.TypeInfo> types, List<String> comments, boolean autoConvert) Converts the Hive list of column names and column types to an Iceberg schema.static Schema
Converts a Hive schema (list of FieldSchema objects) to an Iceberg schema.static Schema
Converts a Hive schema (list of FieldSchema objects) to an Iceberg schema.static Type
convert
(org.apache.hadoop.hive.serde2.typeinfo.TypeInfo typeInfo) Converts a Hive typeInfo object to an Iceberg type.static List
<org.apache.hadoop.hive.metastore.api.FieldSchema> Converts the Iceberg schema to a Hive schema (list of FieldSchema objects).static org.apache.hadoop.hive.serde2.typeinfo.TypeInfo
Converts an Iceberg type to a Hive TypeInfo object.static PartitionSpec
Converts the Hive partition columns to Iceberg identity partition specification.
-
Method Details
-
convert
Converts the Iceberg schema to a Hive schema (list of FieldSchema objects).- Parameters:
schema
- The original Iceberg schema to convert- Returns:
- The Hive column list generated from the Iceberg schema
-
convert
Converts a Hive schema (list of FieldSchema objects) to an Iceberg schema. If some of the types are not convertible then exception is thrown.- Parameters:
fieldSchemas
- The list of the columns- Returns:
- An equivalent Iceberg Schema
-
convert
public static Schema convert(List<org.apache.hadoop.hive.metastore.api.FieldSchema> fieldSchemas, boolean autoConvert) Converts a Hive schema (list of FieldSchema objects) to an Iceberg schema.- Parameters:
fieldSchemas
- The list of the columnsautoConvert
- Iftrue
then TINYINT and SMALLINT is converted to INTEGER and VARCHAR and CHAR is converted to STRING. Otherwise if these types are used in the Hive schema then exception is thrown.- Returns:
- An equivalent Iceberg Schema
-
spec
public static PartitionSpec spec(Schema schema, List<org.apache.hadoop.hive.metastore.api.FieldSchema> fieldSchemas) Converts the Hive partition columns to Iceberg identity partition specification.- Parameters:
schema
- The Iceberg schemafieldSchemas
- The partition column specification- Returns:
- The Iceberg partition specification
-
convert
public static Schema convert(List<String> names, List<org.apache.hadoop.hive.serde2.typeinfo.TypeInfo> types, List<String> comments) Converts the Hive list of column names and column types to an Iceberg schema. If some of the types are not convertible then exception is thrown.- Parameters:
names
- The list of the Hive column namestypes
- The list of the Hive column typescomments
- The list of the Hive column comments- Returns:
- The Iceberg schema
-
convert
public static Schema convert(List<String> names, List<org.apache.hadoop.hive.serde2.typeinfo.TypeInfo> types, List<String> comments, boolean autoConvert) Converts the Hive list of column names and column types to an Iceberg schema.- Parameters:
names
- The list of the Hive column namestypes
- The list of the Hive column typescomments
- The list of the Hive column comments, can be nullautoConvert
- Iftrue
then TINYINT and SMALLINT is converted to INTEGER and VARCHAR and CHAR is converted to STRING. Otherwise if these types are used in the Hive schema then exception is thrown.- Returns:
- The Iceberg schema
-
convert
Converts an Iceberg type to a Hive TypeInfo object.- Parameters:
type
- The Iceberg type- Returns:
- The Hive type
-
convert
Converts a Hive typeInfo object to an Iceberg type.- Parameters:
typeInfo
- The Hive type- Returns:
- The Iceberg type
-