Quelle est la meilleure façon de trouver les identifiants de sommets isolés à l'aide de graph-librame? Avec la dernière version, nous pouvons utiliser "Dropisolatedvertices ()" pour les supprimer du graphique, mais je voudrais aussi connaître les identifiants d'entre eux. P>
merci p>
3 Réponses :
Une solution laideuse est la suivante:
notiso = [row.id for row in g.dropIsolatedVertices().vertices.select("id").collect()] iso = g.vertices.filter(g.vertices.id.isin(notiso) == False).select("id")
Un autre moyen consiste à utiliser la fonction résultat avec mon graphique p> connectéComponents code> et filtrer et sélectionner sur ce dont vous avez besoin à l'extrémité
get_connected_components.show()
+-------+-------------+
| id| component|
+-------+-------------+
| b6| 240518168576|
| a3| 343597383680|
| a4| 343597383680|
| c7| 498216206336|
| b2| 240518168576|
| c9| 498216206336|
| c5| 498216206336|
| c1| 498216206336|
| c6| 498216206336|
| a2| 343597383680|
| b3| 240518168576|
| b1| 240518168576|
| c8| 498216206336|
|alone11|1116691496960|
| a1| 343597383680|
| c4| 498216206336|
| c3| 498216206336|
|alone12|1340029796352|
| b4| 240518168576|
| c2| 498216206336|
+-------+-------------+
only showing top 20 rows
my_conncected_vertices.show()
+-------------+---------------+
| component_id|number_vertices|
+-------------+---------------+
| 240518168576| 6|
|1116691496960| 1|
|1340029796352| 1|
| 498216206336| 10|
| 343597383680| 4|
+-------------+---------------+
my_isolated_vertices.show()
+-------+
| id|
+-------+
|alone11|
|alone12|
+-------+
Dataset<Row> afterDropIsolate = graph.dropIsolatedVertices().vertices(); return graph.vertices().except(afterDropIsolate);