火焰
blaze的Python项目详细描述
blaze转换修改后的numpy和pandas类语法的子集 数据库和其他计算系统。blaze允许python用户 熟悉其他数据存储系统中的数据查询界面。
示例
我们将blaze指向外部数据库(postgresql)中的一个简单数据集。 我们立刻就能看到结果,就像在熊猫数据框中看到的那样。
>>>importblazeasbz>>>iris=bz.Data('postgresql://localhost::iris')>>>irissepal_lengthsepal_widthpetal_lengthpetal_widthspecies05.13.51.40.2Iris-setosa14.93.01.40.2Iris-setosa24.73.21.30.2Iris-setosa34.63.11.50.2Iris-setosa
这些结果立即出现。blaze不从 postgres将python命令转换成sql(或者 其他。)
>>>iris.species.distinct()species0Iris-setosa1Iris-versicolor2Iris-virginica>>>bz.by(iris.species,smallest=iris.petal_length.min(),...largest=iris.petal_length.max())specieslargestsmallest0Iris-setosa1.91.01Iris-versicolor5.13.02Iris-virginica6.94.5
同样的例子也适用于广泛的数据库, 磁盘上的文本或二进制文件,或远程数据。
什么是火焰
blaze不执行计算。它依赖于其他系统,如SQL, 火花,或熊猫做实际的数字运算。它不是 更换这些系统。
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']
但是表达式和数据的分离允许我们在 不同的后端。
在这里,我们用熊猫而不是纯Python来解决同样的问题。
>>>df=DataFrame(L,columns=['id','name','amount'])>>>compute(deadbeats,df)1Bob4EdithName:name,dtype:object
blaze不计算这些结果,而是智能地驱动其他 而是计算它们的项目。这些项目包括 python迭代器到强大的分布式spark集群。熊熊燃烧 随着新系统的发展而扩展到新系统。
开始
blaze在conda或pypi上可用
conda install blaze pip install blaze
可访问开发版本
conda install blaze -c blaze pip install http://github.com/blaze/blaze --upgrade
您可能需要查看the docs、the tutorial、some blogposts,或mailing list archives。
开发设置
使用conda安装所有blaze依赖项的最快方法是 遵循
conda install blaze spark -c blaze -c anaconda-cluster -y conda remove odo blaze blaze-core datashape -y
运行这些命令后,从 直接使用Github。这三个项目一起发布。运行python setup.py develop以安装每个程序的开发。