Start cleaning up Scaladocs in Graph and EdgeRDD

This commit is contained in:
Ankur Dave 2014-01-10 11:37:54 -08:00
parent 3eb83191cb
commit 4c114a7556
2 changed files with 27 additions and 35 deletions

View file

@ -7,7 +7,10 @@ import org.apache.spark.graphx.impl.EdgePartition
import org.apache.spark.rdd.RDD
import org.apache.spark.storage.StorageLevel
/**
* `EdgeRDD[ED]` extends `RDD[Edge[ED]]` by storing the edges in columnar format on each partition
* for performance. It is constructed using [[org.apache.spark.graphx.impl.EdgePartitionBuilder]].
*/
class EdgeRDD[@specialized ED: ClassTag](
val partitionsRDD: RDD[(PartitionID, EdgePartition[ED])])
extends RDD[Edge[ED]](partitionsRDD.context, List(new OneToOneDependency(partitionsRDD))) {

View file

@ -15,12 +15,9 @@ import org.apache.spark.storage.StorageLevel
* RDDs, the graph is a functional data-structure in which mutating
* operations return new graphs.
*
* @see GraphOps for additional graph member functions.
*
* @note The majority of the graph operations are implemented in
* `GraphOps`. All the convenience operations are defined in the
* `GraphOps` class which may be shared across multiple graph
* implementations.
* @note [[org.apache.spark.graphx.GraphOps]] contains additional convenience operations.
* [[org.apache.spark.graphx.algorithms.Algorithms]] contains graph algorithms; to access these,
* import `org.apache.spark.graphx.algorithms._`.
*
* @tparam VD the vertex attribute type
* @tparam ED the edge attribute type
@ -32,9 +29,6 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
*
* @note vertex ids are unique.
* @return An RDD containing the vertices in this graph
*
* @see Vertex for the vertex type.
*
*/
val vertices: VertexRDD[VD]
@ -45,8 +39,8 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
*
* @return An RDD containing the edges in this graph
*
* @see Edge for the edge type.
* @see edgesWithVertices to get an RDD which contains all the edges
* @see [[org.apache.spark.graphx.Edge]] for the edge type.
* @see `triplets` to get an RDD which contains all the edges
* along with their vertex data.
*
*/
@ -64,11 +58,10 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
* {{{
* type Color = Int
* val graph: Graph[Color, Int] = Graph.textFile("hdfs://file.tsv")
* val numInvalid = graph.edgesWithVertices()
* .map(e => if (e.src.data == e.dst.data) 1 else 0).sum
* val numInvalid = graph.triplets.map(e => if (e.src.data == e.dst.data) 1 else 0).sum
* }}}
*
* @see edges() If only the edge data and adjacent vertex ids are
* @see `edges` if only the edge data and adjacent vertex ids are
* required.
*
*/
@ -88,19 +81,19 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
* Return a graph that is cached when first created. This is used to
* pin a graph in memory enabling multiple queries to reuse the same
* construction process.
*
* @see RDD.cache() for a more detailed explanation of caching.
*/
def cache(): Graph[VD, ED]
/**
* Uncache only the vertices of this graph, leaving the edges alone. This is useful because most
* graph operations modify the vertices but reuse the edges.
* Uncache only the vertices of this graph, leaving the edges alone. This is useful in iterative
* algorithms that modify the vertex attributes but reuse the edges. This method can be used to
* uncache the vertex attributes of previous iterations once they are no longer needed, improving
* GC performance.
*/
def unpersistVertices(blocking: Boolean = true): Graph[VD, ED]
/**
* Repartition the edges in the graph according to partitionStrategy.
* Repartition the edges in the graph according to `partitionStrategy`.
*/
def partitionBy(partitionStrategy: PartitionStrategy): Graph[VD, ED]
@ -113,8 +106,7 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
* Construct a new graph where each vertex value has been
* transformed by the map function.
*
* @note This graph is not changed and that the new graph has the
* same structure. As a consequence the underlying index structures
* @note The new graph has the same structure. As a consequence the underlying index structures
* can be reused.
*
* @param map the function from a vertex object to a new vertex value.
@ -126,8 +118,7 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
* {{{
* val rawGraph: Graph[(), ()] = Graph.textFile("hdfs://file")
* val root = 42
* var bfsGraph = rawGraph
* .mapVertices[Int]((vid, data) => if (vid == root) 0 else Math.MaxValue)
* var bfsGraph = rawGraph.mapVertices[Int]((vid, data) => if (vid == root) 0 else Math.MaxValue)
* }}}
*
*/
@ -137,7 +128,7 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
* Construct a new graph where the value of each edge is
* transformed by the map operation. This function is not passed
* the vertex value for the vertices adjacent to the edge. If
* vertex values are desired use the mapTriplets function.
* vertex values are desired, use the `mapTriplets` method.
*
* @note This graph is not changed and that the new graph has the
* same structure. As a consequence the underlying index structures
@ -156,15 +147,13 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
}
/**
* Construct a new graph transforming the value of each edge using
* the user defined iterator transform. The iterator transform is
* given an iterator over edge triplets within a logical partition
* and should yield a new iterator over the new values of each edge
* in the order in which they are provided to the iterator transform
* If adjacent vertex values are not required, consider using the
* mapEdges function instead.
* Construct a new graph transforming the value of each edge using the user defined iterator
* transform. The iterator transform is given an iterator over edges within a logical partition
* as well as the partition's ID, and it should return a new iterator over the new values of each
* edge. The new iterator's elements must correspond one-to-one with the old iterator's
* elements. If adjacent vertex values are desired, use the `mapTriplets` method.
*
* @note This that this does not change the structure of the
* @note This does not change the structure of the
* graph or modify the values of this graph. As a consequence
* the underlying index structures can be reused.
*
@ -183,9 +172,9 @@ abstract class Graph[VD: ClassTag, ED: ClassTag] {
* transformed by the map operation. This function passes vertex
* values for the adjacent vertices to the map function. If
* adjacent vertex values are not required, consider using the
* mapEdges function instead.
* `mapEdges` method instead.
*
* @note This that this does not change the structure of the
* @note This does not change the structure of the
* graph or modify the values of this graph. As a consequence
* the underlying index structures can be reused.
*