使用NumPy和Zarr进行分布式处理。
项目描述
Zappy - 使用NumPy和Zarr进行分布式处理
Zappy适用于在Pywren、Apache Spark和Apache Beam等引擎上对分块NumPy数组进行分布式处理。
zappy.base模块定义了一个ZappyArray类,该类暴露与numpy.ndarray相同的接口,并支持分布式存储和处理。数组被分成块,通常从Zarr加载,每个块独立处理。
提供了一些引擎
- direct - 用于内存处理
- spark - 使用Spark进行处理
- beam - 使用Beam或Google Dataflow进行处理
- executor - 使用Python的concurrent.futures.Executor进行处理,其中Pywren是一个值得注意的实现
Beam目前仅在Python 2上运行。
没有完全实现numpy.ndarray接口。仅实现了足够的接口以支持运行Scanpy的部分,如Single Cell Experiments存储库中所示。
安装
pip install zappy
另外,可以使用Conda(最简单的通过Miniconda Python发行版获得)安装zappy
conda install -c conda-forge zappy
演示
请查看已渲染的演示 Jupyter 笔记本,或者按照以下步骤尝试自己使用。
创建并激活一个 Python 3 虚拟环境,并安装所需依赖。
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
pip install -e .
pip install s3fs jupyter
然后运行笔记本:
jupyter notebook demo.ipynb
测试
所有引擎都有测试套件,涵盖 Python 2 和 3。
使用 tox 一键运行所有测试。
pip install tox
tox
格式化
pip install black
black zappy tests/* *.py
覆盖率
pip install pytest-cov
pytest --cov-report html --cov=zappy
open htmlcov/index.html
发布
pip install twine
python setup.py sdist
twine upload -r pypi dist/zappy-0.1.0.tar.gz
如果成功,该包将可在PyPI上找到。
关闭
zappy-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5f4802f02ee26c6b4292209ff19cb06fece0252ee2128cdc739392fe0049c3e7 |
|
MD5 | 1e72729ffc171631e716fbbc5cfce63c |
|
BLAKE2b-256 | 7fdd8a3a895fb3bb0e71a31a505dde8d1edf4237a6c127745e30e5a9a8249d09 |