Launch a Dask cluster from a virtual environment
Project description
sneks
Get your snakes in a row.
sneks lets you launch a Dask cluster in the cloud, matched to your local software environment*, in a single line of code. No more dependency mismatches or Docker image building.
from sneks import get_client
client = get_client()
*your local Poetry or PDM environment. You must use poetry or PDM. Locking package managers are what sensible people use, and you are sensible.
Neat! Sneks also supports ARM clusters! Just pass ARM instances in scheduler_instace_types=, worker_instace_types= and cross your fingers that all your dependencies have cross-arch wheels!
Installation
poetry add -G dev sneks-sync
A full example:
mkdir example && cd example
poetry init -n
poetry add -G dev sneks-sync
poetry add distributed==2022.5.2 dask==2022.5.2 bokeh pandas pyarrow # and whatever else you want
from sneks import get_client
import dask.dataframe as dd
client = get_client(name="on-a-plane")
ddf = dd.read_parquet(
"s3://nyc-tlc/trip data/yellow_tripdata_2012-*.parquet",
)
print(ddf.groupby('passenger_count').trip_distance.mean().compute())
Oh wait, we forgot to install a dependency!
poetry add foobar
When we reconnect to the cluster (using the same name), the dependencies on the cluster update automatically.
from sneks import get_client
import dask.dataframe as dd
import foobar # ah, how could we forget this critical tool
client = get_client(name="on-a-plane")
ddf = dd.read_csv(
"s3://nyc-tlc/csv_backup/yellow_tripdata_2012-*.csv",
)
means = ddf.groupby('passenger_count').trip_distance.mean()
means.apply(foobar.optimize).compute()
Caveats
This is still a proof-of-concept-level package. It's been used personally quite a bit, and proven reliable, but use at your own risk.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sneks_sync-0.6.2.tar.gz.
File metadata
- Download URL: sneks_sync-0.6.2.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.9.4 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ed946ded1f8d5f3ad54fef52d8c2e10256154b95e6f4de6a1ce12cca7dbc3e6
|
|
| MD5 |
b310250025c74714d446e8819d3e2355
|
|
| BLAKE2b-256 |
20dfd44b1344d94176ec193bf0c758ad621e0f6521070b402a6d0e236dd85c37
|
File details
Details for the file sneks_sync-0.6.2-py3-none-any.whl.
File metadata
- Download URL: sneks_sync-0.6.2-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.9.4 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
449b1fabae27d51a21b227fc6ca006d9e8e3bc3397bdf596360be3fc817b03e0
|
|
| MD5 |
718c2b74758901391008c132bbc18acd
|
|
| BLAKE2b-256 |
41904dbf5861002cc149512573f9286a2739a6cb060ef097cfaf35d1b34efa55
|