Schema
Schema and field
Schemas, fields, and data types are provided in the deltalake.schema
submodule.
deltalake.Schema
invariants
instance-attribute
The list of invariants on the table. Each invarint is a tuple of strings. The first string is the field path and the second is the SQL of the invariant.
from_arrow
staticmethod
Create a Schema from a schema that implements Arrow C Data Interface.
Will raise TypeError
if one of the Arrow type is not a primitive type.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type |
ArrowSchemaExportable
|
an object that is |
required |
Returns:
Type | Description |
---|---|
Schema
|
a Schema |
from_json
staticmethod
Create a new Schema from a JSON string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
json |
str
|
a JSON string |
required |
to_arrow
Return equivalent arro3 schema
Parameters:
Name | Type | Description | Default |
---|---|---|---|
as_large_types |
bool
|
get schema with all variable size types (list, binary, string) as large variants (with int64 indices). This is for compatibility with systems like Polars that only support the large versions of Arrow types. |
False
|
Returns:
Type | Description |
---|---|
Schema
|
an arro3 Schema |
to_json
deltalake.Field
A field in a Delta StructType or Schema
Example
Can create with just a name and a type:
Field("my_int_col", "integer")
# Returns Field("my_int_col", PrimitiveType("integer"), nullable=True, metadata=None)
Can also attach metadata to the field. Metadata should be a dictionary with string keys and JSON-serializable values (str, list, int, float, dict):
type
instance-attribute
The type of the field, of type: Union[ PrimitiveType, ArrayType, MapType, StructType ]
from_arrow
staticmethod
Create a Field from an object with an ArrowSchemaExportable
field
Note: This currently doesn't preserve field metadata.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
field |
ArrowSchemaExportable
|
a Field object that is |
required |
Returns:
Type | Description |
---|---|
Field
|
a Field |
from_json
staticmethod
Create a Field from a JSON string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
json |
str
|
the JSON string. |
required |
Returns:
Type | Description |
---|---|
Field
|
Field |
to_arrow
Convert to an equivalent arro3 field Note: This currently doesn't preserve field metadata.
Returns:
Type | Description |
---|---|
Field
|
a arro3 Field |
Data types
deltalake.schema.PrimitiveType
A primitive datatype, such as a string or number.
Can be initialized with a string value:
Valid primitive data types include:
- "string",
- "long",
- "integer",
- "short",
- "byte",
- "float",
- "double",
- "boolean",
- "binary",
- "date",
- "timestamp",
- "timestamp_ntz",
- "decimal(
, )" Max: decimal(38,38)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data_type |
str
|
string representation of the data type |
required |
from_arrow
staticmethod
Create a PrimitiveType from an ArrowSchemaExportable
datatype
Will raise TypeError
if the arrow type is not a primitive type.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type |
ArrowSchemaExportable
|
an object that is |
required |
Returns:
Type | Description |
---|---|
PrimitiveType
|
a PrimitiveType |
from_json
staticmethod
Create a PrimitiveType from a JSON string
The JSON representation for a primitive type is just a quoted string: PrimitiveType.from_json('"integer"')
Parameters:
Name | Type | Description | Default |
---|---|---|---|
json |
str
|
a JSON string |
required |
Returns:
Type | Description |
---|---|
PrimitiveType
|
a PrimitiveType type |
deltalake.schema.ArrayType
An Array (List) DataType
Example
Can either pass the element type explicitly or can pass a string if it is a primitive type:
element_type
instance-attribute
The type of the element, of type: Union[ PrimitiveType, ArrayType, MapType, StructType ]
from_arrow
staticmethod
Create an ArrayType from an ArrowSchemaExportable
datatype.
Will raise TypeError
if a different arrow DataType is provided.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type |
ArrowSchemaExportable
|
an object that is |
required |
Returns:
Type | Description |
---|---|
ArrayType
|
an ArrayType |
from_json
staticmethod
Create an ArrayType from a JSON string
Parameters:
Name | Type | Description | Default |
---|---|---|---|
json |
str
|
a JSON string |
required |
Returns:
Type | Description |
---|---|
ArrayType
|
an ArrayType |
deltalake.schema.MapType
A map data type
key_type
and value_type
should be PrimitiveType, ArrayType,
or StructType. A string can also be passed, which will be
parsed as a primitive type:
Example
MapType(PrimitiveType("integer"), PrimitiveType("string"))
# Returns MapType(PrimitiveType("integer"), PrimitiveType("string"), value_contains_null=True)
MapType("integer", "string", value_contains_null=False)
# Returns MapType(PrimitiveType("integer"), PrimitiveType("string"), value_contains_null=False)
key_type
instance-attribute
The type of the keys, of type: Union[ PrimitiveType, ArrayType, MapType, StructType ]
value_contains_null
instance-attribute
Whether the values in a map may be null
value_type
instance-attribute
The type of the values, of type: Union[ PrimitiveType, ArrayType, MapType, StructType ]
from_arrow
staticmethod
Create a MapType from an ArrowSchemaExportable
datatype
Will raise TypeError
if passed a different type.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type |
ArrowSchemaExportable
|
an object that is |
required |
Returns:
Type | Description |
---|---|
MapType
|
a MapType |
from_json
staticmethod
Create a MapType from a JSON string
Parameters:
Name | Type | Description | Default |
---|---|---|---|
json |
str
|
a JSON string |
required |
Returns:
Type | Description |
---|---|
MapType
|
an ArrayType |
Example
The JSON representation for a map type is an object with type
(set to map
),
keyType
, valueType
, and valueContainsNull
:
deltalake.schema.StructType
A struct datatype, containing one or more subfields
Example
Create with a list of :class:Field
:
from_arrow
staticmethod
Create a new StructType from an ArrowSchemaExportable
datatype
Will raise TypeError
if a different data type is provided.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
type |
ArrowSchemaExportable
|
a struct type object that is |
required |
Returns:
Type | Description |
---|---|
StructType
|
a StructType |
from_json
staticmethod
Create a new StructType from a JSON string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
json |
str
|
a JSON string |
required |
Returns:
Type | Description |
---|---|
StructType
|
a StructType |