跳转到主要内容

Blaze

项目描述

https://raw.github.com/blaze/blaze/master/docs/source/svg/blaze_med.png

Build Status Coverage Status Join the chat at https://gitter.im/blaze/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克隆odoblazedatashape。这三个项目一起发布。运行python setup.py develop来为每个项目创建开发安装。

许可证

在BSD许可证下发布。有关详细信息,请参阅LICENSE.txt

Blaze开发由Continuum Analytics赞助。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分发

blaze-0.10.1.tar.gz (472.5 kB 查看哈希值)

上传时间

由以下支持