Работая с python и spark, я пытаюсь создать график из фрейма данных.Моя переменная Dataframe df
содержит список ребер.Вот что я попробовал:
import numpy as np
from igraph import *
dataFrame = "/FileStore/tables/source.csv"
df = spark.read.format("csv").option("header","false").option("inferSchema", "true").load(dataFrame)
dd = df.collect()
npmatr=np.asmatrix(dd,dtype=np.int)
print(npmatr)
g=Graph(len(npmatr))
for i in range(len(npmatr)):
for j in range(2):
g.add_edges(npmatr[i][j])
Но там написано:
"Ошибка типа: итерация должна возвращать пары целых чисел или строк".
Любые предложения о том, как исправить мой код или любой другой способ чтения данных графа из кадра данных?
Для большей ясности предположим, что print(npmatr)
имеет следующий вывод:
[[0 1] [0 2] [0 3] [0 4] [12] [1 3] [1 4] [1 6] [2 3] [2 6] [2 7] [3 4] [4 2] [5 6] [5 7] [6 7] [6 5][7 4]]
Я хотел бы создать график, содержащий ребра, как в приведенном выше списке, например, он будет иметь ребра от узла 0 до узлов 1,2,3,4,ребра от узла 1 до узла 2,3,4,6, ...