> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Session.read_arrow()

<span id="atoti.Session.read_arrow" />

> Session.read\_arrow(<br />
>     *arrow\_table*: pa.Table,<br />
>     /,<br />
>     \*,<br />
>     *data\_types*: Mapping\[[str](https://docs.python.org/3/library/stdtypes.html#str), DataType] = `frozendict({})`,<br />
>     *default\_values*: Mapping\[[str](https://docs.python.org/3/library/stdtypes.html#str), Constant | [None](https://docs.python.org/3/library/constants.html#None)] = `frozendict({})`,<br />
>     *keys*: AbstractSet\[[str](https://docs.python.org/3/library/stdtypes.html#str)] | Sequence\[[str](https://docs.python.org/3/library/stdtypes.html#str)] = `frozenset({})`,<br />
>     *partitioning*: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *table\_name*: [str](https://docs.python.org/3/library/stdtypes.html#str),<br />
> ) → [Table](./atoti.Table#atoti.Table)

Read an Arrow table into an Atoti table.

<Note>
  This is just a shortcut for:

  ```python theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
  inferred_data_types = session.tables.infer_data_types(arrow_table)
  table = session.create_table(
      table_name,
      data_types={**inferred_data_types, **data_types},
      default_values=...,
      keys=...,
      partitioning=...,
  )
  table.load(arrow_table)
  ```

  The longer variant can be refactored to move the [`load()`](./atoti.Table.load#atoti.Table.load) call inside a [`data_transaction()`](./atoti.Tables.data_transaction#atoti.tables.Tables.data_transaction).
</Note>

### Parameters

<h4 id="atoti.Session.read_arrow.arrow_table">
  *arrow\_table*
</h4>

The Arrow Table to load.

<h4 id="atoti.Session.read_arrow.data_types">
  *data\_types*
</h4>

Data types for some or all columns of the table.
Data types for non specified columns will be inferred from the dataframe dtypes.

<h4 id="atoti.Session.read_arrow.default_values">
  *default\_values*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *default\_values*.

<h4 id="atoti.Session.read_arrow.keys">
  *keys*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *keys*.

<h4 id="atoti.Session.read_arrow.partitioning">
  *partitioning*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *partitioning*.

<h4 id="atoti.Session.read_arrow.table_name">
  *table\_name*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *name*.
