pyarrow.Field#
- classpyarrow.Field#
Bases:
_Weakrefable
A named field, with a data type, nullability, and optional metadata.
Notes
Do not use this class’s constructor directly; use pyarrow.field
Examples
Create an instance of pyarrow.Field:
>>>importpyarrowaspa>>>pa.field('key',pa.int32())pyarrow.Field<key: int32>>>>pa.field('key',pa.int32(),nullable=False)pyarrow.Field<key: int32 not null>>>>field=pa.field('key',pa.int32(),...metadata={"key":"Something important"})>>>fieldpyarrow.Field<key: int32>>>>field.metadata{b'key': b'Something important'}
Use the field to create a struct type:
>>>pa.struct([field])StructType(struct<key: int32>)
- __init__(*args,**kwargs)#
Methods
__init__
(*args, **kwargs)equals
(self, Field other, ...)Test if this field is equal to the other
flatten
(self)Flatten this field.
remove_metadata
(self)Create new field without metadata, if any
with_metadata
(self, metadata)Add metadata as dict of string keys and values to Field
with_name
(self, name)A copy of this field with the replaced name
with_nullable
(self, nullable)A copy of this field with the replaced nullability
with_type
(self, DataType new_type)A copy of this field with the replaced type
Attributes
- equals(self,Fieldother,boolcheck_metadata=False)#
Test if this field is equal to the other
- Parameters:
- other
pyarrow.Field
- check_metadatabool, default
False
Whether Field metadata equality should be checked as well.
- other
- Returns:
- is_equalbool
Examples
>>>importpyarrowaspa>>>f1=pa.field('key',pa.int32())>>>f2=pa.field('key',pa.int32(),nullable=False)>>>f1.equals(f2)False>>>f1.equals(f1)True
- flatten(self)#
Flatten this field. If a struct field, individual child fieldswill be returned with their names prefixed by the parent’s name.
- Returns:
- fields
List
[pyarrow.Field
]
- fields
Examples
>>>importpyarrowaspa>>>f1=pa.field('bar',pa.float64(),nullable=False)>>>f2=pa.field('foo',pa.int32()).with_metadata({"key":"Something important"})>>>ff=pa.field('ff',pa.struct([f1,f2]),nullable=False)
Flatten a struct field:
>>>ffpyarrow.Field<ff: struct<bar: double not null, foo: int32> not null>>>>ff.flatten()[pyarrow.Field<ff.bar: double not null>, pyarrow.Field<ff.foo: int32>]
- metadata#
The field metadata (if any is set).
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32(),...metadata={"key":"Something important"})>>>field.metadata{b'key': b'Something important'}
- name#
The field name.
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32())>>>field.name'key'
- nullable#
The field nullability.
Examples
>>>importpyarrowaspa>>>f1=pa.field('key',pa.int32())>>>f2=pa.field('key',pa.int32(),nullable=False)>>>f1.nullableTrue>>>f2.nullableFalse
- remove_metadata(self)#
Create new field without metadata, if any
- Returns:
- field
pyarrow.Field
- field
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32(),...metadata={"key":"Something important"})>>>field.metadata{b'key': b'Something important'}
Create new field by removing the metadata from the existing one:
>>>field_new=field.remove_metadata()>>>field_new.metadata
- type#
- with_metadata(self,metadata)#
Add metadata as dict of string keys and values to Field
- Parameters:
- metadata
dict
Keys and values must be string-like / coercible to bytes
- metadata
- Returns:
- field
pyarrow.Field
- field
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32())
Create new field by adding metadata to existing one:
>>>field_new=field.with_metadata({"key":"Something important"})>>>field_newpyarrow.Field<key: int32>>>>field_new.metadata{b'key': b'Something important'}
- with_name(self,name)#
A copy of this field with the replaced name
- Parameters:
- name
str
- name
- Returns:
- field
pyarrow.Field
- field
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32())>>>fieldpyarrow.Field<key: int32>
Create new field by replacing the name of an existing one:
>>>field_new=field.with_name('lock')>>>field_newpyarrow.Field<lock: int32>
- with_nullable(self,nullable)#
A copy of this field with the replaced nullability
- Parameters:
- nullablebool
- Returns:
- field:
pyarrow.Field
- field:
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32())>>>fieldpyarrow.Field<key: int32>>>>field.nullableTrue
Create new field by replacing the nullability of an existing one:
>>>field_new=field.with_nullable(False)>>>field_newpyarrow.Field<key: int32 not null>>>>field_new.nullableFalse
- with_type(self,DataTypenew_type)#
A copy of this field with the replaced type
- Parameters:
- new_type
pyarrow.DataType
- new_type
- Returns:
- field
pyarrow.Field
- field
Examples
>>>importpyarrowaspa>>>field=pa.field('key',pa.int32())>>>fieldpyarrow.Field<key: int32>
Create new field by replacing type of an existing one:
>>>field_new=field.with_type(pa.int64())>>>field_newpyarrow.Field<key: int64>