Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyspark 如何使用GraphFrame从边列表创建图形_Pyspark_Networkx_Igraph_Spark Graphx - Fatal编程技术网

Pyspark 如何使用GraphFrame从边列表创建图形

Pyspark 如何使用GraphFrame从边列表创建图形,pyspark,networkx,igraph,spark-graphx,Pyspark,Networkx,Igraph,Spark Graphx,我有一个dataframe,其中有两列是边缘列表,我想使用pyspark或python从中创建图形 有人能建议怎么做吗。 在R中,可以使用IGRAPHE中的以下命令来完成 graph.edgelist(as.matrix(df)) 我的输入数据帧是df valx valy 1: 600060 09283744 2: 600131 96733110 3: 600194 01700001 我的输出应该如下所示(它基本上都是V1下的valx和valy以

我有一个dataframe,其中有两列是边缘列表,我想使用pyspark或python从中创建图形 有人能建议怎么做吗。 在R中,可以使用IGRAPHE中的以下命令来完成

graph.edgelist(as.matrix(df))
我的输入数据帧是df

    valx      valy 
1: 600060     09283744
2: 600131     96733110 
3: 600194     01700001
我的输出应该如下所示(它基本上都是V1下的valx和valy以及V2下的成员信息)


根据所需的输出,您似乎不需要图形,而是需要一个显示V1值最初存储在哪一行的数组。您可以从原始数据帧中获取

我将假设您想要的是将数据帧转换为图形格式,而不是上述格式

import networkx as nx
import pandas as pd

filelocation = r'C:\Users\Documents\Tilo Edgelist'

Panda_edgelist = pd.read_csv(filelocation)

g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')

nx.draw(g,with_labels = True,node_size = 0)
上面的代码将在python中为您创建一个图形,下面是使用networkx中的draw函数绘制图形时的输出

我假设您是通过读取某种文件来创建数据帧的

如果可以将此文件转换为csv文件,则可以使用pandas将其读入数据帧

我使用的csv文件格式如下:

valx,valy

600060,09283744

600131,96733110 

600194,01700001
将csv文件的文件路径替换为引号之间的文件路径

下面您可以看到
pd.read\u csv
中的数据帧的样子

   valx      valy
0  600060   9283744
1  600131  96733110
2  600194   1700001
然后我们将这个数据帧传递给networkx来创建图形

g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')
在上面的函数中,您可以看到我给了它参数
Panda_edgelist
,然后
'valx'
'valy'
分别作为源节点和目标节点列名。它使用这些参数创建一个名为g的图

最后,我使用
nx.draw
绘制了生成到控制台的图形

 nx.draw(g,with_labels = True,node_size = 0)
在我们的例子中,这个函数需要你把图g传递给它

with_labels=True
用于绘制节点名称/ID

节点_size=0
用于使绘制的节点大小为0。默认情况下,如果你不给函数这个参数,那么它会画红色的小圆圈来表示图中的节点。

你要找的是什么?我不知道您是想要一个图形作为输出还是另一个数据帧
 nx.draw(g,with_labels = True,node_size = 0)