Я не уверен, что вы нарушаете какие-либо правила, задавая один и тот же вопрос два раза .
Чтобы обнаружить сообщества с графическими фреймами, сначала вам нужно создать объект графических фреймов. Дайте вашему примеру dataframe следующий фрагмент кода, показывающий необходимые преобразования:
from graphframes import *
sc.setCheckpointDir("/tmp/connectedComponents")
l = [
( '600060' , '09283744'),
( '600131' , '96733110'),
( '600194' , '01700001')
]
columns = ['valx', 'valy']
#this is your input dataframe
edges = spark.createDataFrame(l, columns)
#graphframes requires two dataframes: an edge and a vertice dataframe.
#the edge dataframe has to have at least two columns labeled with src and dst.
edges = edges.withColumnRenamed('valx', 'src').withColumnRenamed('valy', 'dst')
edges.show()
#the vertice dataframe requires at least one column labeled with id
vertices = edges.select('src').union(edges.select('dst')).withColumnRenamed('src', 'id')
vertices.show()
g = GraphFrame(vertices, edges)
Выход:
+------+--------+
| src| dst|
+------+--------+
|600060|09283744|
|600131|96733110|
|600194|01700001|
+------+--------+
+--------+
| id|
+--------+
| 600060|
| 600131|
| 600194|
|09283744|
|96733110|
|01700001|
+--------+
Вы написали в комментариях к своему другому вопросу , что алгоритм обнаружения сообщества в настоящее время не имеет значения для вас. Поэтому я выберу подключенные компоненты :
result = g.connectedComponents()
result.show()
Выход:
+--------+------------+
| id| component|
+--------+------------+
| 600060|163208757248|
| 600131| 34359738368|
| 600194|884763262976|
|09283744|163208757248|
|96733110| 34359738368|
|01700001|884763262976|
+--------+------------+
Другие алгоритмы обнаружения сообщества (например, LPA) можно найти в руководстве пользователя .