Pyspark 如何显示/可视化GraphFrame创建的图形?

Pyspark 如何显示/可视化GraphFrame创建的图形?,pyspark,visualization,graphframes,Pyspark,Visualization,Graphframes,我使用GraphFrame创建了一个图形 g=图形帧顶点、边 除了使用GraphFrame提供的查询和属性分析图形外,我还想将图形可视化,以便在演示中使用 您知道有任何工具/库/API/代码可以以简单的方式实现这种可视化吗?不是一种简单的方式,但您可以使用python igraph库。我在R中使用了它,但是python应该是类似的。请参见下面的简单示例。所有这些工具的主要问题是,您应该仔细选择要绘制的小子图 安装它: #>pip install python-igraph 最简单的可视化

我使用GraphFrame创建了一个图形

g=图形帧顶点、边

除了使用GraphFrame提供的查询和属性分析图形外,我还想将图形可视化,以便在演示中使用


您知道有任何工具/库/API/代码可以以简单的方式实现这种可视化吗?

不是一种简单的方式,但您可以使用python igraph库。我在R中使用了它,但是python应该是类似的。请参见下面的简单示例。所有这些工具的主要问题是,您应该仔细选择要绘制的小子图

安装它:

#>pip install python-igraph
最简单的可视化:

g = GraphFrame (vertices, edges)
from igraph import *
ig = Graph.TupleList(g.edges.collect(), directed=True)
plot(ig)

另一种方法是使用图形模块networkx的绘图功能

import networkx as nx
from graphframes import GraphFrame

def PlotGraph(edge_list):
    Gplot=nx.Graph()
    for row in edge_list.select('src','dst').take(1000):
        Gplot.add_edge(row['src'],row['dst'])

    plt.subplot(121)
    nx.draw(Gplot)


spark = SparkSession \
    .builder \
    .appName("PlotAPp") \
    .getOrCreate()

sqlContext = SQLContext(spark)

vertices = sqlContext.createDataFrame([
  ("a", "Alice", 34),
  ("b", "Bob", 36),
  ("c", "Charlie", 30),
  ("d", "David", 29),
  ("e", "Esther", 32),
("e1", "Esther2", 32),
  ("f", "Fanny", 36),
  ("g", "Gabby", 60),
    ("h", "Mark", 61),
    ("i", "Gunter", 62),
    ("j", "Marit", 63)], ["id", "name", "age"])

edges = sqlContext.createDataFrame([
  ("a", "b", "friend"),
  ("b", "a", "follow"),
  ("c", "a", "follow"),
  ("c", "f", "follow"),
  ("g", "h", "follow"),
  ("h", "i", "friend"),
  ("h", "j", "friend"),
  ("j", "h", "friend"),
    ("e", "e1", "friend")
], ["src", "dst", "relationship"])

g = GraphFrame(vertices, edges)
PlotGraph(g.edges)
另见