Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PropertyGraph set index to vertex and edge ids #2523

Merged
merged 14 commits into from
Sep 30, 2022
Merged
171 changes: 115 additions & 56 deletions python/cugraph/cugraph/dask/structure/mg_property_graph.py

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions python/cugraph/cugraph/gnn/graph_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,11 +134,11 @@ def has_multiple_etypes(self):

@property
def ntypes(self):
return list(self.gdata.vertex_types)
return sorted(self.gdata.vertex_types)

@property
def etypes(self):
return list(self.gdata.edge_types)
return sorted(self.gdata.edge_types)

@property
def is_mg(self):
Expand Down Expand Up @@ -275,7 +275,7 @@ def _get_edgeid_type_d(self, edge_ids, etypes):
@cached_property
def extracted_subgraph(self):
edge_list = self.gdata.get_edge_data(
columns=[src_n, dst_n, type_n, eid_n]
columns=[src_n, dst_n, type_n]
)
edge_list = edge_list.reset_index(drop=True)

Expand All @@ -286,7 +286,7 @@ def extracted_subgraph(self):
@cached_property
def extracted_reverse_subgraph(self):
edge_list = self.gdata.get_edge_data(
columns=[src_n, dst_n, type_n, eid_n]
columns=[src_n, dst_n, type_n]
)
return get_subgraph_from_edgelist(
edge_list, self.is_mg, reverse_edges=True
Expand All @@ -297,7 +297,7 @@ def extracted_subgraphs_per_type(self):
sg_d = {}
for etype in self.etypes:
edge_list = self.gdata.get_edge_data(
columns=[src_n, dst_n, type_n, eid_n], types=[etype]
columns=[src_n, dst_n, type_n], types=[etype]
)
sg_d[etype] = get_subgraph_from_edgelist(
edge_list, self.is_mg, reverse_edges=False
Expand All @@ -309,7 +309,7 @@ def extracted_reverse_subgraphs_per_type(self):
sg_d = {}
for etype in self.etypes:
edge_list = self.gdata.get_edge_data(
columns=[src_n, dst_n, type_n, eid_n], types=[etype]
columns=[src_n, dst_n, type_n], types=[etype]
)
sg_d[etype] = get_subgraph_from_edgelist(
edge_list, self.is_mg, reverse_edges=True
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,14 +205,14 @@ def __init__(self, G, backend='torch'):
srcs = srcs.compute()

dst_types = self.__graph.get_vertex_data(
vertex_ids=dsts,
vertex_ids=dsts.values_host,
columns=[self.__graph.type_col_name]
)[self.__graph.type_col_name].unique()

src_types = self.__graph.get_vertex_data(
vertex_ids=srcs,
columns=['_TYPE_']
)._TYPE_.unique()
vertex_ids=srcs.values_host,
columns=[self.__graph.type_col_name]
)[self.__graph.type_col_name].unique()

if self.is_mg:
dst_types = dst_types.compute()
Expand Down Expand Up @@ -434,8 +434,9 @@ def neighbor_sample(
).unique()

noi = self.__graph.get_vertex_data(
nodes_of_interest.compute() if self.is_mg else nodes_of_interest,
columns=[self.__graph.vertex_col_name, self.__graph.type_col_name]
nodes_of_interest.compute().values_host if self.is_mg
else nodes_of_interest,
columns=[self.__graph.type_col_name]
)

noi_types = noi[self.__graph.type_col_name].unique()
Expand Down Expand Up @@ -595,13 +596,13 @@ def _get_tensor(self, attr):
if len(self.__graph.vertex_types) == 1:
# make sure we don't waste computation if there's only 1 type
df = self.__graph.get_vertex_data(
vertex_ids=idx,
vertex_ids=idx.get(),
types=None,
columns=cols
)
else:
df = self.__graph.get_vertex_data(
vertex_ids=idx,
vertex_ids=idx.get(),
types=[attr.group_name],
columns=cols
)
Expand Down
Loading