dbl-tempo
Tempo is timeseries manipulation for Spark. This project builds upon the capabilities of PySpark to provide a suite of abstractions and functions that make operations on timeseries data easier and highly scalable.
What it is and what it does
Tempo is a library that wraps DataFrames to simplify time series analysis. It provides a TSDF (Time Series DataFrame) abstraction that treats a DataFrame as a collection of time series, one per partition key, and exposes methods for common time series operations: resampling to different frequencies, AS OF joins to merge the latest records from a source table, rolling statistics over time windows, exponential and simple moving averages, Fourier transforms, and interpolation of missing values. The library also supports Delta Lake optimization on time and partition fields.
Tempo is built for data teams using Databricks who need to perform time series transformations at scale. It handles the complexity of windowing and sorting across partitions, allowing you to work with time-indexed data using a higher-level API. The entry point is always a TSDF object, which requires a distinguished timestamp column and optionally partition and sequence columns.
Use it for:
- Resample high-frequency sensor or event data into regular time buckets (e.g., 1-minute aggregates) for analysis or visualization.
- Perform AS OF joins to enrich a fact table with the most recent values from a slowly-changing dimension or reference table.
- Generate lagged features from time series for machine learning (e.g., prior 50 values for EMA-based prediction).
- Compute rolling statistics (mean, min, max) over a time window to detect anomalies or trends in streaming data.
- Interpolate missing time periods in sparse time series using forward-fill, backward-fill, or linear interpolation methods.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Tempo provides time series operations on Spark DataFrames, including AS OF joins, rolling statistics, lagged feature generation, and Delta Lake optimization for time-partitioned data.
Yes. Tempo is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and zero runtime dependencies. It is well-suited for teams already using Databricks who need to simplify time series operations. Install it if you work with time-indexed data; skip it if you do not need time series transformations.
Install
dbl-tempo on PyPI
pip
pip install dbl-tempouv
uv add dbl-tempopoetry
poetry add dbl-tempoInstalling dbl-tempo
Before you install
Low install friction with a pure-Python wheel. Actively maintained as of 2026-07-10 with 344 repository stars and regular releases since 2021.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most production environments.
Quickstart
pip install dbl-tempo
from tempo import TSDF
tsdf = TSDF(spark_df, ts_col="event_ts", partition_cols=["user_id"])
resampled = tsdf.resample(freq='min', func='mean')
Requires Apache Spark and PySpark; designed for use in Databricks notebooks or local Spark environments.
Verify before relying
- Whether Tempo's operations scale efficiently to very large time series datasets or specific volume thresholds.
- Performance characteristics of AS OF joins compared to native Spark windowing on typical workloads.
- Support for custom aggregation functions beyond the documented 'floor', 'ceil', 'min', 'max', 'mean' options.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 333 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,221,234/month — #2,360 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dbl_tempo-0.1.30-py3-none-any.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
dbldatagenGenerates synthetic data at scale within…
unclear · top 15,000 on PyPI
window-opsProvides numba-optimized window operations…
permissive · top 15,000 on PyPI
pyspark-pandasProvides tools for distributing Pandas…
unclear · top 5,000 on PyPI
quinnQuinn provides helper methods for PySpark…
permissive · top 15,000 on PyPI
coreforecastProvides fast C++ implementations of…
permissive · top 5,000 on PyPI
sparkaidProvides utilities for working with Spark…
copyleft · top 15,000 on PyPI
delta-sparkProvides Python APIs for Delta Lake, an…
permissive · top 1,000 on PyPI
databricks-labs-remorphConverts SQL code between different database…
unclear · top 5,000 on PyPI
databricks-testProvides a unit testing framework for…
permissive · top 15,000 on PyPI
dtw-pythonComputes Dynamic Time Warping alignments…
copyleft · top 15,000 on PyPI