# latu v0.1.0 - Table of Contents

> A native Elixir DataFrame API for Apache Spark, over Spark Connect.

## Pages

- [Latu](readme.md)
- [Changelog](changelog.md)
- [Contributing](contributing.md)

- Guides
  - [Quick start](quick-start.md)
  - [Cookbook](cookbook.md)
  - [Coming from PySpark](from-pyspark.md)
  - [Coming from Explorer](from-explorer.md)

- Reference
  - [Cheatsheet](cheatsheet.md)
  - [Using Latu](usage-rules.md)
  - [Where Latu differs from PySpark](deviations.md)

## Modules

- Verbs
  - [Latu](Latu.md): A native Elixir DataFrame API for Apache Spark, over Spark Connect.

- Expressions
  - [Latu.Column](Latu.Column.md): Expressions: column references, literals, operators.
  - [Latu.Functions](Latu.Functions.md): Spark's function library.
  - [Latu.Window](Latu.Window.md): A window specification: how to partition, how to order, and which rows the frame covers.

- Session
  - [Latu.Catalog](Latu.Catalog.md): Spark's catalog: databases, tables, views, caching.
  - [Latu.Retry](Latu.Retry.md): When a failed RPC is tried again, and how long Latu waits in between.
  - [Latu.Session](Latu.Session.md): Where the Spark Connect server is, and the identity it keys state on.

- Results and observability
  - [Latu.Error](Latu.Error.md): Anything Latu returns as `{:error, _}`.
  - [Latu.ExecutionInfo](Latu.ExecutionInfo.md): What a run reported besides its result: the metrics you asked for, and the ones Spark keeps.
  - [Latu.Progress](Latu.Progress.md): What the server says it is doing, while it is still doing it.
  - [Latu.Result](Latu.Result.md): Arrow batches in, Explorer out — and, for `Latu.create_dataframe/3`, the other direction.
  - [Latu.Telemetry](Latu.Telemetry.md): The `:telemetry` events Latu emits, and the only place their names are written down.

- Plans and carriers
  - [Latu.CaseWhen](Latu.CaseWhen.md): A `CASE WHEN` chain, waiting for `otherwise/2`.
  - [Latu.DataFrame](Latu.DataFrame.md): A lazy DataFrame: a session and an inert plan.
  - [Latu.GroupedData](Latu.GroupedData.md): A DataFrame with grouping attached, waiting for `agg/2`.
  - [Latu.MergeInto](Latu.MergeInto.md): A merge being assembled: a source frame, a target table, and the clauses to apply.
  - [Latu.Plan](Latu.Plan.md): Relation and expression trees, built directly as protobuf. Pure: no session, no network, no
IO.
  - [Latu.Subquery](Latu.Subquery.md): An expression that references other DataFrames, and the relations it references.

