Я пытаюсь извлечь значения из Фрейма данных Pyspark после того, как Pyspark действительно работает, чтобы найти Подключенные компоненты, но я не понимаю, как извлечь эти данные, как вы, скажем, из списка.
Нижеупрощенная версия таблицы, созданной из большого набора данных, из которого я работаю.По сути, следующая таблица создается с использованием данных о связности вершин и ребер графов.Если номер компонента совпадает, это означает, что узлы (идентификаторы) лежат в одной и той же структуре графа.
+---+------------+
| id| component|
+---+------------+
| 0|154618822656|
| 1|154618822656|
| 2|154618822656|
| 3|154618822656|
| 4|420906795008|
| 5|420906795008|
+---+------------+
Я много чего пытался извлечь данные в формы, которые я больше всегораньше нравились списки и словари.Когда я пробую различные методы в документах, я получаю вывод, такой как:
[Row(id='0', component=154618822656), Row(id='1', component=154618822656)]
, который я не уверен, как работать.Я также видел метод asDict () в Pyspark, но не могу заставить его работать даже с простой таблицей.
Это примерная функция, которая принимает графическую рамку, находит связанные компоненты и создает таблицу.Все хорошо, пока я не хочу поместить данные в другую структуру:
def get_connected_components(graphframe):
connected_table = g.connectedComponents()
connected_table.collect()
conn = connected_table.rdd.take(2)
print(conn)
В конечном итоге я хотел бы получить что-то вроде этого:
{"154618822656" : {0, 1}, "420906795008": {2, 3, 4, 5}}
, которое я бы превратил в дальнейшеенапример:
0 1
2 3 4 5
Это может быть неправильный способ работы с этими таблицами, но я новичок в Pyspark и удивлен тем, насколько это сложно даже со всеми поисками.Заранее спасибо.