构建子图

GraphFrames提供了通过对边和顶点进行过滤来构建子图的API。这些过滤器可以组合在一起来使用。例如,构建只包含年龄在30岁以上的朋友的子图,代码如下:

// 选择用户年龄超过30岁,并且边的类型是"friend"的子图
val g2 = g
      .filterEdges("relationship = 'friend'")
      .filterVertices("age > 30")
      .dropIsolatedVertices()

g2.vertices.show()
g2.edges.show()

输出结果如下:

+---+------+---+--------+----------+
| id|  name|age|     cash|      fruit|
+---+------+---+--------+----------+
|  a| Alice| 34|      234|     Apples|
|  b|   Bob| 36| 23232323|   Bananas|
|  e|Esther| 32|         1|Watermelon|
+---+------+---+--------+----------+

+---+---+------------+
|src|dst|relationship|
+---+---+------------+
|  a|   b|       friend|
|  a|   e|       friend|
+---+---+------------+

这个例子中,分别使用filterVertices()方法和filterEdges()方法过滤顶点和边用来创建子图。在最后对子图调用dropIsola ......

......

抱歉,只有登录会员才可浏览!会员登录


《PySpark原理深入与编程实战》