pyarrow.Field — Apache Arrow v20.0.0 (original) (raw)

class pyarrow.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:

import pyarrow as pa 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"}) field pyarrow.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

Attributes

equals(self, Field other, bool check_metadata=False)#

Test if this field is equal to the other

Parameters:

otherpyarrow.Field

check_metadatabool, default False

Whether Field metadata equality should be checked as well.

Returns:

is_equalbool

Examples

import pyarrow as pa 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 fields will be returned with their names prefixed by the parent’s name.

Returns:

fieldsList[pyarrow.Field]

Examples

import pyarrow as pa 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:

ff pyarrow.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 or None

Examples

import pyarrow as pa field = pa.field('key', pa.int32(), ... metadata={"key": "Something important"}) field.metadata {b'key': b'Something important'}

name#

The field name.

Examples

import pyarrow as pa field = pa.field('key', pa.int32()) field.name 'key'

nullable#

The field nullability.

Examples

import pyarrow as pa f1 = pa.field('key', pa.int32()) f2 = pa.field('key', pa.int32(), nullable=False) f1.nullable True f2.nullable False

remove_metadata(self)#

Create new field without metadata, if any

Returns:

fieldpyarrow.Field

Examples

import pyarrow as pa 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

import pyarrow as pa field = pa.field('key', pa.int32())

Create new field by adding metadata to existing one:

field_new = field.with_metadata({"key": "Something important"}) field_new pyarrow.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

import pyarrow as pa field = pa.field('key', pa.int32()) field pyarrow.Field<key: int32>

Create new field by replacing the name of an existing one:

field_new = field.with_name('lock') field_new pyarrow.Field<lock: int32>

with_nullable(self, nullable)#

A copy of this field with the replaced nullability

Parameters:

nullablebool

Returns:

field: pyarrow.Field

Examples

import pyarrow as pa field = pa.field('key', pa.int32()) field pyarrow.Field<key: int32> field.nullable True

Create new field by replacing the nullability of an existing one:

field_new = field.with_nullable(False) field_new pyarrow.Field<key: int32 not null> field_new.nullable False

with_type(self, DataType new_type)#

A copy of this field with the replaced type

Parameters:

new_typepyarrow.DataType

Returns:

fieldpyarrow.Field

Examples

import pyarrow as pa field = pa.field('key', pa.int32()) field pyarrow.Field<key: int32>

Create new field by replacing type of an existing one:

field_new = field.with_type(pa.int64()) field_new pyarrow.Field<key: int64>