0
Для возобновления я хочу поставить в те же групповые ценности, которые связаны:создать столбец, групповые ценности,
Вот что у меня есть:
col1 col2
1 2
1 3
2 3
4 5
5 6
и я хочу это:
col1 col2 group
1 2 1
1 3 1
2 3 1
4 5 2
5 6 2
Чтобы создать эти две группы, выполните шаги, если я сделаю это вручную.
- строка 1: 1 связан с 2 так, что они находятся на одной и той же группы, назовем ее группа 1
- строка 2: 1 находится на 1-й группе, и теперь 1 связан с 3 так, 3 также на группе 1
- строка 3: 2 относится к группе 1 и 3 также относится к группе 1, поэтому они находятся в группе 1
- строка 4: 4 не является значением группы 1, поэтому я создаю новую группу, называемую 2 и i связывают его с 5
- строка 5: 5 имеет группу 2 и связана с 6, поэтому она имеет группу 2.
У вас есть идея разрешить это в SQL. Зная, что я использую улей или pyspark
Эта проблема аналогична обнаружению связанных компонентов графа. Каждая строка представляет собой границу между двумя вершинами. Hive/MapReduce плохо подходит для решения этой проблемы, но есть библиотека Spark, называемая GraphX, и к счастью для вас они буквально добавили API Python через новую библиотеку GraphFrames (https://databricks.com/blog/2016/03/ 03/introduction-graphframes.html), так что, надеюсь, вы можете заставить администратора кластера обновить Spark. –
Спасибо, я решил проблему с вашим ответом. Я использовал графическую рамку и функцию connectedComponents(). – patpat