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

metadata

The field metadata (if any is set).

name

The field name.

nullable

The field nullability.

type

equals(self,Fieldother,boolcheck_metadata=False)#

Test if this field is equal to the other

Parameters:
otherpyarrow.Field
check_metadatabool, defaultFalse

Whether Field metadata equality should be checked as well.

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:
fieldsList[pyarrow.Field]

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).

Returns:
metadatadict orNone

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:
fieldpyarrow.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:
metadatadict

Keys and values must be string-like / coercible to bytes

Returns:
fieldpyarrow.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:
namestr
Returns:
fieldpyarrow.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

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_typepyarrow.DataType
Returns:
fieldpyarrow.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>