Blaze:NumPy和Pandas的大数据接口

blaze

Blaze生态系统为Python用户提供了高效处理大数据的高层访问接口,它是新一代Python实现的科学计算包,专为大数据打造用于处理分布式的各种数据源的计算。它扩展现有的数学计算库NumPy和科学计算库SciPy,使其更适应大数据库技术。Blaze聚焦在内核外处理超过系统内存容量的大型数据集,并同时支持分布式数据和流数据。

Blaze生态系统包含如下部分:

  1. 用于描述和解释分析查询的符号表达系统;
  2. 一组从查询系统到多种数据库/计算引擎的解释器。

这种结构允许单个Blaze代码可以针对多个计算后台运行。Blaze能够实现与用户的高速交互,并且仅仅在必要的时候去与访问数据库。Blaze同样也能够分析和优化查询语句来提高交互体验。

应用领域

Blaze整合了包括Python的Pandas、NumPy及SQL、Mongo、Spark在内的多种技术,使用Blaze能够非常容易地与一个新技术进行交互。

Blaze目前主要用于数据库和数组技术的分析查询。并且它在不断地整合和提供基于其它计算系统的应用接口。Blaze主要通过为数据科学家提供直观的各种工具访问来展现性能。

最新版本

目前Blaze最新版本为2015年12月17日发布的Release 0.10.2rc1+5.g87dd886。

包含项目

Blaze项目

Blaze忽略用户使用的各种不同的计算方案和不同类型的数据库,为用户提供了统一、友好、熟悉的界面。它帮助我们更好地与文档、数据结构以及数据库进行交互,根据需要适当优化和转换用户查询语句以提供一个流畅和交互式会话。Blaze项目允许数据科学家和分析人员以统一的方式编写他们的查询语句,不必因为数据存储格式或存储介质的不同而进行转换。它还提供了一个服务器组件,允许使用URIs来方便地提供数据视图,并在本地脚本、查询和程序中远程引用数据。

将NumPy/Pandas式的句法规则转换为数据计算系统(例如数据库、内存、分布式计算)。这为Python用户查询存储于其他数据存储系统中的数据提供了便捷和熟悉的界面。一条Blaze查询命令能够完成从CSV文件到分布式数据库的各种数据处理。

DataShape:数据类型系统

DataShape结合了NumPy中的dtype和数据形状,并且将内容扩展到了缺失值、可变长度字符串、不规则数组以及多任意嵌套方面。它包含了从数据库到HDF5文件再到JSON片段数据类型的统一描述。

Odo:实现不同格式数据的转换

Odo利用一个复杂可扩展的转换网络,通过一个简单的界面有效稳定地实现了不同类型(CSV、JSON、数据库)和不同位置(本地、远程、HDFS)数据的传输和转换。

示例:odo需要传递两个参数,第一个参数是数据来源,第二个参数是目标数据格式。

DyND:内存中的动态数组

DyND是一个类似于NumPy一样的动态ND数组库,是一个实现数据格式类型处理的系统。它支持可变长度的字符串、不规则数据以及GPU。它是一个与Python绑定的独立的C++代码库。通常DyND比NumPy更具扩展性,但不如NumPy成熟。

Dask.array:多核/基于磁盘存储的NumPy数组

Dask.dataframe:多核/基于磁盘的Pandas数据帧

Dask.arrays在NumPy之上提供了阻塞算法,并利用多核处理大于内存的数组。它们是NumPy算法常用集的简单替换。

Dask.dataframes在Pandas之上提供了阻塞算法,并利用多核处理大于内存的数据帧(dataframe),它们是Pandas用例算法集的简单替换。

除了多核和多线程调度器外,Dask还利用简单装饰器和新生分布式调度器为用户提供了一个“Bag”类型数据和一种构建“任务图(task graphs)”的方法。

这些项目都是相互独立的。本篇文档的其余部分都是关于Blaze项目本身的介绍。Datashape、odo、dynd、dask内容请参照上述链接。

使用示例

Blaze将用户需要执行的运算从数据集中分离开来。

Blaze能够使用户解决数据导向的问题。

表达式从数据中的分离能够使得用户在不同的应用后台中切换。

下面我们用Pandas代替纯Python方法来解决相同的问题。

这些结果实际上不是由Blaze本身去处理的,而是Blaze通过调用或驱动其他项目来解决它们,这些项目从简单的纯Python迭代器(iterators)到高性能的Spark分布式集群。

了解Blaze

开发资源链接

官方网站:http://blaze.pydata.org/
开源地址:https://github.com/blaze

2 8 收藏

资源整理者简介:赵叶宇

Python技术学习者,主要集中数据分析领域和机器学习。 个人主页 · 贡献了7个资源 · 1


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1438 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer