GraphX 是 Apache Spark 用于图和图并行计算的 API。

灵活性

无缝地处理图和集合。

GraphX 将 ETL、探索性分析和迭代图计算统一在一个系统中。您可以将相同的数据视为图和集合,高效地用 RDD 转换连接图,并使用 Pregel API 编写自定义的迭代图算法。

graph = Graph(vertices, edges)
messages = spark.textFile("hdfs://...")
graph2 = graph.joinVertices(messages) {
  (id, vertex, msg) => ...
}
在 Scala 中使用 GraphX

速度

与最快的专用图处理系统相媲美的性能。

GraphX 在性能上与最快的图系统竞争,同时保留了 Spark 的灵活性、容错性和易用性。

端到端 PageRank 性能(20 次迭代,37 亿条边)

算法

从不断增长的图算法库中选择。

除了高度灵活的 API 外,GraphX 还附带了各种图算法,其中许多是由我们的用户贡献的。

  • PageRank
  • 连通分量
  • 标签传播
  • SVD++
  • 强连通分量
  • 三角形计数

社区

GraphX 作为 Apache Spark 项目的一部分进行开发。因此,它会随每个 Spark 版本进行测试和更新。

如果您对该库有疑问,请在 Spark 邮件列表上提问。

GraphX 处于 Alpha 阶段,并欢迎贡献。如果您想为 GraphX 提交更改,请阅读如何贡献 Spark 并发送补丁给我们!

开始使用

开始使用 GraphX

  • 下载 Spark。GraphX 作为模块包含在内。
  • 阅读 GraphX 指南,其中包含使用示例。
  • 如果您想在分布式模式下运行,请了解如何在集群上部署 Spark。您也可以在多核机器上本地运行,无需任何设置。