GraphFrames 的 JAR 包合集,适合在 PySpark 里搞图数据。压缩包里全是干货,直接解压后配置到 Spark 的jars路径就能用,挺省事的。图里常见的 PageRank、最短路径、社区检测这些,它都能搞定,接口也挺好用。尤其是你原来就用 DataFrame 习惯了,上手 GraphFrames 一点都不难。

GraphFrames 的图能力,和 Spark 的分布式配合起来,效率是真的不错。你只要用两个 DataFrame——一个装节点,一个装边,就能构建图结构了。像下面这样:

vertices = spark.createDataFrame([
  ("a", "Person", 35),
  ("b", "Person", 23),
  ("c", "Organization", 10)
], ["id", "label", "age"])

edges = spark.createDataFrame([ ("a", "b", "friend"), ("b", "c", "follows") ], ["src", "dst", "relationship"])

g = GraphFrame(vertices, edges)

你就可以直接用g.pageRank()g.shortestPaths()这些 API 做图计算,语法也直白,响应还挺快。蛮适合做社交、推荐逻辑或者风控建模这些场景。

配置 JAR 文件的时候,记得用spark.jars参数把路径加进去:

spark = SparkSession.builder \
  .appName("GraphDataFrameExample") \
  .config("spark.jars", "/path/to/graphframes-*.jar") \
  .getOrCreate()

对了,如果你是第一次搞 GraphFrames,建议先看看官方的 API 文档,或者配合下面这几个链接看看:

如果你已经熟悉 PySpark,想试试图结构的数据,graphdataframes jars.zip可以说是个不错的起点。