Cython SDK API¶
Pregel¶
- class graphscope.analytical.app.pregel.Vertex[VD_TYPE, MD_TYPE]
Class which holds vertex id, data and edges.
VD_TYPE: vertex data type MD_TYPE: message type
- id() str
Get vertex id.
- label() str
Get vertex label.
- label_id() int
Get vertex label id.
- properties() vector[pair[str, str]]
Get list of vertex properties, which consisting of property name and property type. Note that property type is one of (“INT”, “DOUBLE”, “STRING”)
- set_value(value: VD_TYPE)
Set the vertex data, immediately visible in current round.
- value() VD_TYPE
Get the vertex value, which data stored with vertex.
- get_str(property_id: int) str
Get vertex str data by property id.
- get_str(property_name: str) str
Get vertex str data by property name.
- get_double(property_id: int) double
Get vertex str data by property id.
- get_double(property_name: str) double
Get vertex double data by property_name.
- get_int(property_id: int) str
Get vertex int data by property id.
- get_int(property_name: str) str
Get vertex int data by property_name.
- outgoing_edges(edge_label_id: int) AdjList[VD_TYPE, MD_TYPE]
Get a iterable of outgoing edges by edge label id of this vertex.
- outgoing_edges(edge_label_name: str) AdjList[VD_TYPE, MD_TYPE]
Get a iterable of outgoing edges by edge label name of this vertex.
- incoming_edges(edge_label_id: int) AdjList[VD_TYPE, MD_TYPE]
Get a iterable of incoming edges by edge label id of this vertex.
- incoming_edges(edge_label_name: str) AdjList[VD_TYPE, MD_TYPE]
Get a iterable of incoming edges by edge label name of this vertex.
- send(v: Vertex[VD_TYPE, MD_TYPE], msg: MD_TYPE)
Send a message to target vertex.
- vote_to_halt()
After this method is called, the compute() code will no longer called with this vertex util receive messages. The application will finish only when all vertices vote to halt.
- class graphscope.analytical.app.pregel.Neighbor[VD_TYPE, MD_TYPE]
- vertex() Vertex[VD_TYPE, MD_TYPE]
Get neighbor vertex.
- get_str(column: int) str
Get edge str data by column id.
- get_int(column: int) str
Get edge int data by column id.
- get_double(column: int) str
Get edge double data by column id.
- class graphscope.analytical.app.pregel.AdjList[VD_TYPE, MD_TYPE]
- begin() Neighbor
Return begin addr of the iterator.
- end() Neighbor
Return end addr of the iterator.
- size() size_t
Get the size of adj list.
- class graphscope.analytical.app.pregel.Context[VD_TYPE, MD_TYPE]
Class which holds current step, aggregator info, query args and other util function.
- get_config(key: str) str
Get a value with specific key, or “” with key not exist.
- register_aggregator(name: str, type: PregelAggregatorType)
Register a aggregator with specific type, naming by name.
- aggregate[AGGR_TYPE](name: str, value: AGGR_TYPE)
Add a new value to aggregator.
- get_aggregated_value[AGGR_TYPE](name: str) AGGR_TYPE
Get value from a aggregator.
- superstep() int
Get current superstep, begin with 0.
- get_total_vertices_num() size_t
Get total vertex number.
- vertex_label_num() int
Get vertex label number.
- edge_label_num() int
Get edge label number.
- vertex_property_num(vertex_label_name: str) int
Get vertex property number by vertex label name.
- vertex_property_num(vertex_label_id: int) int
Get vertex property number by vertex label id.
- edge_property_num(edge_label_name: str) int
Get edge property number by edge label name.
- edge_property_num(edge_label_id: int) int
Get vertex property number by edge label id.
- vertex_labels() vector[str]
Get list of vertex label.
- edge_labels() vector[str]
Get list of edge label.
- get_vertex_label_by_id(vertex_label_id: int) str
Get vertex label name by label id.
- get_vertex_label_id_by_name(vertex_label_name: str) int
Get vertex label id by name.
- get_edge_label_by_id(edge_label_id: int) str
Get edge label name by label id.
- get_edge_label_id_by_name(edge_label_name: str) int
Get edge label id by name.
- vertex_properties(vertex_label_id: int) vector[pair[str, str]]
Get list of vertex properties by label id.
- vertex_properties(vertex_label_name: str) vector[pair[str, str]]
Get list of vertex properties by label name.
- edge_properties(edge_label_id: int) vector[pair[str, str]]
Get list of edge properties by label id.
- edge_properties(edge_label_name: str) vector[pair[str, str]]
Get list of edge properties by label name.
- get_vertex_property_id_by_name(vertex_label_name: str, vertex_property_name: str) int
Get vertex property id by property name.
- get_vertex_property_id_by_name(vertex_label_id: int, vertex_property_name: str) int
Get vertex property id by property name.
- get_vertex_property_by_id(vertex_label_name: str, vertex_property_id: int) str
Get vertex property name by property id.
- get_vertex_property_by_id(vertex_label_id: int, vertex_property_id: int) int
Get vertex property name by property id.
- get_edge_property_id_by_name(edge_label_name: str, edge_property_name: str) int
Get edge property id by property name.
- get_edge_property_id_by_name(edge_label_id: int, edge_property_name: str) int
Get edge property id by property name.
- get_edge_property_by_id(edge_label_name: str, edge_property_id: int) str
Get edge property name by property id.
- get_edge_property_by_id(edge_label_id: int, edge_property_id: int) int
Get edge property name by property id.
- class graphscope.analytical.app.pregel.MessageIterator[MD_TYPE]
- empty() bool
Return True if there is no message in queue.
- class graphscope.analytical.app.pregel.PregelAggregatorType
- kBoolAndAggregator
Aggregator for calculating the AND function over boolean values. The default value when nothing is aggregated is true.
- kBoolOrAggregator
Aggregator for calculating the OR function over boolean values. The default value when nothing is aggregated is false.
- kBoolOverwriteAggregator
Aggregator that stores a value that is overwritten once another value is aggregated. Note that, in case multiple vertices write to this aggregator, the behavior is non-deterministic. The default value for this aggregator is false.
- kDoubleMinAggregator
Aggregator for getting min double value.
- kDoubleMaxAggregator
Aggregator for getting max double value.
- kDoubleSumAggregator
Aggregator for summing up double values.
- kDoubleProductAggregator
Aggregator for calculating products of double value.
- kDoubleOverwriteAggregator
Aggregator that stores a value that is overwritten once another value is aggregated. Note that, in case multiple vertices write to this aggregator, the behavior is non-deterministic.
- kInt64MinAggregator
Aggregator for getting min int64 value.
- kInt64MaxAggregator
Aggregator for getting max int64 value.
- kInt64SumAggregator
Aggregator for summing up int64 values.
- kInt64ProductAggregator
Aggregator for calculating products of int64 value.
- kInt64OverwriteAggregator
Aggregator that stores a value that is overwritten once another value is aggregated. Note that, in case multiple vertices write to this aggregator, the behavior is non-deterministic.
- kTextAppendAggregator
Aggregator with string as its value which keeps appending text to it.
PIE¶
- class graphscope.analytical.app.pie.MessageStrategy
- kAlongOutgoingEdgeToOuterVertex
For each of inner vertex, it will send messages to target vertex along outgoing edges.
- kAlongIncomingEdgeToOuterVertex
For each of inner vertex, it will send messages to target vertex along incoming edges.
- kAlongEdgeToOuterVertex
For each of inner vertex, it will send messages to target vertex along both incoming and outgoing edges.
- kSyncOnOuterVertex
For each of outer vertex, it will send messages to fragment which it belongs to (sync message to itself).
- class graphscope.analytical.app.pie.Vertex
- Vertex()
Vertex in graph.
- class graphscope.analytical.app.pie.VertexRange
- VertexRange()
A range list of vertex, which only contain vertex id.
- begin() Vertex
The begin addr of vertex range list.
- end() Vertex
The end addr of vertex range list.
- size() int
The size of vertex range list.
- class graphscope.analytical.app.pie.VertexArray[T]
- VertexArray()
A list of vertex, which also contain a vertex data.
- Init(range: VertexRange)
Init VertexArray with default value.
- Init(range: VertexRange, const T& value)
Init VertexArray with specify value.
- operator(v: Vertex) T
Get vertex data.
- class graphscope.analytical.app.pie.Nbr
- Nbr()
- neighbor() Vertex
Get neighbor vertex.
- get_str(column: int) str
Get edge str data by column id.
- get_int(column: int) str
Get edge int data by column id.
- get_double(column: int) str
Get edge double data by column id.
- class graphscope.analytical.app.pie.AdjList
- AdjList()
- begin() Nbr
Return begin addr of the adj list.
- end() Nbr
Return end addr of the adj list.
- size() int
Get the size of adj list.
- class graphscope.analytical.app.pie.Fragment
- Fragment()
- fid() int
Get fragment id.
- fnum() int
Get fragment number.
- vertex_label_num() int
Get vertex label number.
- edge_label_num() int
Get edge label number.
- get_total_nodes_num() size_t
Get total vertex number.
- get_nodes_num(vertex_label_id: int) size_t
Get vertex(inner + outer) number by label id.
- get_inner_nodes_num(vertex_label_id: int) size_t
Get inner vertex number by label id.
- get_outer_nodes_num(vertex_label_id: int) size_t
Get outer vertex number by label id.
- nodes(vertex_label_id: int) VertexRange
Get vertex range of this fragment by label id.
- inner_nodes(vertex_label_id: int) VertexRange
Get inner vertex range in this fragment by label id.
- outer_nodes(vertex_label_id: int) VertexRange
Get outer vertex range in this fragment by label id.
- get_node_fid(v: Vertex) int
Get fragment id of the v.
- is_inner_node(v: Vertex) bool
Return True if v is the inner vertex of this fragment.
- is_outer_node(v: Vertex) bool
Return False if v is the outer vertex of this fragment.
- get_node(label_id: int, oid: string&, v: Vertex&) bool
Return True if oid exists in this fragment.
- get_inner_node(label_id: int, oid: string&, v: Vertex&) bool
Return True if oid exists in the inner vertex in this fragment, and assign the node to v.
- get_outer_node(label_id: int, oid: string&, v: Vertex&) bool
Return True if oid exists in the outer vertex in this fragment, and assign the node to v.
- get_node_id(v: Vertex) str
Return vertex oid of v.
- get_outgoing_edges(v: Vertex, edge_label_id: int) AdjList
Get a iterable of outgoing edges by label id of this vertex.
- get_incoming_edges(v: Vertex, edge_label_id: int) AdjList
Get a iterable of incoming edges by label id of this vertex.
- has_child(v: Vertex, edge_label_id: int) bool
Return True of vertex has child with connection of edge label id.
- has_parent(v: Vertex, edge_label_id: int) bool
Return True of vertex has parent with connection of edge label id.
- get_indegree(v: Vertex, edge_label_id: int) bool
Return the in-degree of edge with specified edge id.
- get_outdegree(v: Vertex, edge_label_id: int) bool
Return the out-degree of edge with specified edge id.
- get_str(v: Vertex, vertex_property_id: int) str
Get vertex str data by property id.
- get_int(v: Vertex, vertex_property_id: int) int
Get vertex int data by property id.
- get_double(v: Vertex, vertex_property_id: int) double
Get vertex double data by property id.
- vertex_labels() vector[str]
Get list of vertex label.
- edge_labels() vector[str]
Get list of edge label.
- get_vertex_label_by_id(vertex_label_id: int) str
Get vertex label name by label id.
- get_vertex_label_id_by_name(vertex_label_name: str) int
Get vertex label id by name.
- get_edge_label_by_id(edge_label_id: int) str
Get edge label name by label id.
- get_edge_label_id_by_name(edge_label_name: str) int
Get edge label id by name.
- vertex_properties(vertex_label_id: int) vector[pair[str, str]]
Get list of vertex properties by label id.
- vertex_properties(vertex_label_name: str) vector[pair[str, str]]
Get list of vertex properties by label name.
- edge_properties(edge_label_id: int) vector[pair[str, str]]
Get list of edge properties by label id.
- edge_properties(edge_label_name: str) vector[pair[str, str]]
Get list of edge properties by label name.
- get_vertex_property_id_by_name(vertex_label_name: str, vertex_property_name: str) int
Get vertex property id by property name.
- get_vertex_property_id_by_name(vertex_label_id: int, vertex_property_name: str) int
Get vertex property id by property name.
- get_vertex_property_by_id(vertex_label_name: str, vertex_property_id: int) str
Get vertex property name by property id.
- get_vertex_property_by_id(vertex_label_id: int, vertex_property_id: int) int
Get vertex property name by property id.
- get_edge_property_id_by_name(edge_label_name: str, edge_property_name: str) int
Get edge property id by property name.
- get_edge_property_id_by_name(edge_label_id: int, edge_property_name: str) int
Get edge property id by property name.
- get_edge_property_by_id(edge_label_name: str, edge_property_id: int) str
Get edge property name by property id.
- get_edge_property_by_id(edge_label_id: int, edge_property_id: int) int
Get edge property name by property id.
- class graphscope.analytical.app.pie.Context[VD_TYPE, MD_TYPE]
- Context()
- superstep() int
Get current superstep.
- get_config(key: str) str
Get a value with specific key, or “” with key not exist.
- init_value(range: VertexRange, value: MD_TYPE, type: PIEAggregateType)
Init vertex range with value and type aggregator.
- register_sync_buffer(v_label_id: int, strategy: MessageStrategy)
Set auto parallel message strategy.
- set_node_value(v: Vertex, value: VD_TYPE)
Set the value of vertex.
- get_node_value(v: Vertex) VD_TYPE
Get the value of vertex.
- class graphscope.analytical.app.pie.PIEAggregateType
After messages auto passing, each inner vertex will aggregate messages it received.
- kMinAggregate
Aggregator for getting min value.
- kMaxAggregate
Aggregator for getting max value.
- kSumAggregate
Aggregator for summing up values.
- kProductAggregate
Aggregator for calculating products of values.
- kOverwriteAggregate
Aggregator that stores a value that is overwritten once another value is aggregated. Note that, in case multiple vertices write to this aggregator, the behavior is non-deterministic.
- kTextAppendAggregate
Aggregator with string as its value which keeps appending text to it.
GraphScope types¶
Functions¶
|
Declare a GraphScope data type. |