Skip to main content
Table.load(
    data: Table | DataFrame | DataLoad,
    /,
    *,
    error_handling: Literal[‘fail’, ‘warn’, ‘log’, ‘skip’] = 'fail',
) → None
Load data into the table.

Parameters

data

The data to load. Besides the various DataLoad implementations, there is built-in support for:
  • pyarrow.Table:
  • pandas.DataFrame:
Anything that can be converted to a pyarrow.Table or a pandas.DataFrame can be loaded too:
  • NumPy array:
  • Spark DataFrame:
    This requires:
    • A Spark version supporting Java 25 (pyspark >= 4.2).
    • A JDK bundling the jdk.incubator.vector module, used by Spark’s launcher (jdk4py does not bundle this module).
The += operator provides syntax sugar to load a single row, given either as a:
  • tuple:
  • Mapping:

error_handling

How to handle rows that cannot be loaded. Atoti tables are strongly typed and reject rows whose values do not match the table’s atoti.Column.data_types. For instance, the following Arrow table has a Count column stored as string and thus cannot be loaded into table’s int Count column.
  • "fail" raises an error and interrupts the load:
    The table is left unchanged:
    The error can be found in logs_path too:
  • "warn" skips the incompatible data and raises a Python warning:
    The table is still unchanged:
    A Python warning is raised:
    The error is logged:
  • "log" skips the incompatible data and logs the errors:
  • "skip" skips the incompatible data without logging:
Error handling is most useful with loosely typed sources such as CsvLoad and JdbcLoad, where a value incompatible with its column’s type is only discovered as each row is parsed, partway through the load.