Blaze
项目描述
Blaze 将修改后的NumPy和Pandas-like语法子集转换为数据库和其他计算系统。Blaze让Python用户能够以熟悉的方式查询存在于其他数据存储系统中的数据。
示例
我们将Blaze指向一个外国数据库(PostgreSQL)中的简单数据集。立即,我们会看到与在Pandas DataFrame中看到的结果相同。
>>> import blaze as bz
>>> iris = bz.Data('postgresql://localhost::iris')
>>> iris
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
这些结果立即出现。Blaze不会从Postgres中提取数据,而是将您的Python命令转换为SQL(或其他)。
>>> iris.species.distinct()
species
0 Iris-setosa
1 Iris-versicolor
2 Iris-virginica
>>> bz.by(iris.species, smallest=iris.petal_length.min(),
... largest=iris.petal_length.max())
species largest smallest
0 Iris-setosa 1.9 1.0
1 Iris-versicolor 5.1 3.0
2 Iris-virginica 6.9 4.5
这个示例可以与广泛的数据库、磁盘上的文本或二进制文件或远程数据一起工作。
Blaze不是什么
Blaze不执行计算。它依赖于其他系统(如SQL、Spark或Pandas)来执行实际的数字处理。它不是这些系统的替代品。
Blaze不实现整个NumPy/Pandas API,也不与旨在与NumPy/Pandas一起工作的库交互。这是使用更多和更大数据系统的成本。
Blaze是检查大型数据库中数据的良好方式,执行一组小型但强大的操作以查询数据,然后将结果转换为适合您喜爱的Python工具的格式。
在摘要中
Blaze将我们要执行的运算
>>> accounts = Symbol('accounts', 'var * {id: int, name: string, amount: int}')
>>> deadbeats = accounts[accounts.amount < 0].name
与数据的表示分开
>>> L = [[1, 'Alice', 100],
... [2, 'Bob', -200],
... [3, 'Charlie', 300],
... [4, 'Denis', 400],
... [5, 'Edith', -500]]
Blaze使用户能够解决面向数据的问题
>>> list(compute(deadbeats, L))
['Bob', 'Edith']
但表达式与数据的分离使我们能够在不同的后端之间切换。
在这里,我们使用Pandas而不是纯Python来解决相同的问题。
>>> df = DataFrame(L, columns=['id', 'name', 'amount'])
>>> compute(deadbeats, df)
1 Bob
4 Edith
Name: name, dtype: object
Blaze不计算这些结果,Blaze智能地驱动其他项目来计算这些结果。这些项目范围从简单的纯Python迭代器到强大的分布式Spark集群。Blaze旨在随着系统的演变而扩展到新系统。
入门指南
Blaze可在conda或PyPI上获得
conda install blaze pip install blaze
开发构建可访问
conda install blaze -c blaze pip install http://github.com/blaze/blaze --upgrade
开发设置
使用conda安装所有Blaze依赖项的最快方法是以下操作
conda install blaze spark -c blaze -c anaconda-cluster -y conda remove odo blaze blaze-core datashape -y
运行这些命令后,直接从GitHub克隆odo、blaze和datashape。这三个项目一起发布。运行python setup.py develop来为每个项目创建开发安装。
许可证
在BSD许可证下发布。有关详细信息,请参阅LICENSE.txt。
Blaze开发由Continuum Analytics赞助。
项目详情
blaze-0.10.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 50a60c8d52c679a6a21d6c689841f032b5dbd6eb5a2ecfaf308aff57f4b7a19a |
|
MD5 | 5615c64f95d99e973a1763976a5829aa |
|
BLAKE2b-256 | a199ec4fc29409d68d83a2138b190722f74d15ca1ca303b5c055171b22baa4c0 |