原文:Introducing GraphFrames
作者:Joseph Bradley、Tim Hunter、Ankur Dave、Xiangrui Meng
近日,Databricks和UC Berkeley及MIT一起为Apache Spark设计了一个图处理库——GraphFrames。它既能利用DataFrame良好的扩展性和强大的性能,同时也为Scala、Java和Python提供了统一的图处理API。
GraphFrames
与Apache Spark的GraphX类似,GraphFrames支持多种图处理功能,但得益于DataFrame因此GraphFrames与GraphX库相它有着下面几方面的优势:
- 统一的 API: 为Python、Java和Scala三种语言提供了统一的接口,这是Python和Java首次能够使用GraphX的全部算法。
- 强大的查询功能:GraphFrames使得用户可以构建与Spark SQL以及DataFrame类似的查询语句。
- 图的存储和读取:GraphFrames与DataFrame的数据源完全兼容,支持以Parquet、JSON以及CSV等格式完成图的存储或读取。
在GraphFrames中图的顶点(Vertex)和边(edge)都是以DataFrame形式存储的,所以一个图的所有信息都能够完整保存。
示例
比如说我们现在有一个社交关系图,每一名用户也就是顶点由他们之间的关系所连接,比如下面的这个例子: