diff --git a/graphx/src/main/scala/org/apache/spark/graphx/Graph.scala b/graphx/src/main/scala/org/apache/spark/graphx/Graph.scala
index 64d44c3e0699353d2ddd05047b9f41583cf83393..56513cac201507d51de4fad38741a4f85ad5eb4f 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/Graph.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/Graph.scala
@@ -16,8 +16,8 @@ import org.apache.spark.storage.StorageLevel
  * operations return new graphs.
  *
  * @note [[GraphOps]] contains additional convenience operations.
- * [[algorithms.Algorithms]] contains graph algorithms; to access these,
- * import `org.apache.spark.graphx.algorithms._`.
+ * [[lib.Algorithms]] contains graph algorithms; to access these,
+ * import `org.apache.spark.graphx.lib._`.
  *
  * @tparam VD the vertex attribute type
  * @tparam ED the edge attribute type
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/Algorithms.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/Algorithms.scala
similarity index 79%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/Algorithms.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/Algorithms.scala
index 558d8da310b9bf93cd964900c86bafc41140a10a..cbcd9c24a0126b04d20cc4ebabb23a95094c7cfa 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/Algorithms.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/Algorithms.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import scala.reflect.ClassTag
 
@@ -9,7 +9,7 @@ import org.apache.spark.graphx._
  * conversion.
  * @example
  * {{{
- * import org.apache.spark.graph.algorithms._
+ * import org.apache.spark.graph.lib._
  * val graph: Graph[_, _] = loadGraph()
  * graph.connectedComponents()
  * }}}
@@ -19,7 +19,7 @@ class Algorithms[VD: ClassTag, ED: ClassTag](self: Graph[VD, ED]) {
    * Run a dynamic version of PageRank returning a graph with vertex attributes containing the
    * PageRank and edge attributes containing the normalized edge weight.
    *
-   * @see [[org.apache.spark.graphx.algorithms.PageRank]], method `runUntilConvergence`.
+   * @see [[org.apache.spark.graphx.lib.PageRank]], method `runUntilConvergence`.
    */
   def pageRank(tol: Double, resetProb: Double = 0.15): Graph[Double, Double] = {
     PageRank.runUntilConvergence(self, tol, resetProb)
@@ -29,7 +29,7 @@ class Algorithms[VD: ClassTag, ED: ClassTag](self: Graph[VD, ED]) {
    * Run PageRank for a fixed number of iterations returning a graph with vertex attributes
    * containing the PageRank and edge attributes the normalized edge weight.
    *
-   * @see [[org.apache.spark.graphx.algorithms.PageRank]], method `run`.
+   * @see [[org.apache.spark.graphx.lib.PageRank]], method `run`.
    */
   def staticPageRank(numIter: Int, resetProb: Double = 0.15): Graph[Double, Double] = {
     PageRank.run(self, numIter, resetProb)
@@ -39,7 +39,7 @@ class Algorithms[VD: ClassTag, ED: ClassTag](self: Graph[VD, ED]) {
    * Compute the connected component membership of each vertex and return a graph with the vertex
    * value containing the lowest vertex id in the connected component containing that vertex.
    *
-   * @see [[org.apache.spark.graphx.algorithms.ConnectedComponents]]
+   * @see [[org.apache.spark.graphx.lib.ConnectedComponents]]
    */
   def connectedComponents(): Graph[VertexID, ED] = {
     ConnectedComponents.run(self)
@@ -48,7 +48,7 @@ class Algorithms[VD: ClassTag, ED: ClassTag](self: Graph[VD, ED]) {
   /**
    * Compute the number of triangles passing through each vertex.
    *
-   * @see [[org.apache.spark.graphx.algorithms.TriangleCount]]
+   * @see [[org.apache.spark.graphx.lib.TriangleCount]]
    */
   def triangleCount(): Graph[Int, ED] = {
     TriangleCount.run(self)
@@ -58,7 +58,7 @@ class Algorithms[VD: ClassTag, ED: ClassTag](self: Graph[VD, ED]) {
    * Compute the strongly connected component (SCC) of each vertex and return a graph with the
    * vertex value containing the lowest vertex id in the SCC containing that vertex.
    *
-   * @see [[org.apache.spark.graphx.algorithms.StronglyConnectedComponents]]
+   * @see [[org.apache.spark.graphx.lib.StronglyConnectedComponents]]
    */
   def stronglyConnectedComponents(numIter: Int): Graph[VertexID, ED] = {
     StronglyConnectedComponents.run(self, numIter)
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/Analytics.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/Analytics.scala
similarity index 99%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/Analytics.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/Analytics.scala
index f09685402acc9cd7109ef9aa5ff40bd471bb44a8..191e2aa05109a0e374fc92816620d14fe527e49c 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/Analytics.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/Analytics.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.apache.spark._
 import org.apache.spark.graphx._
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/ConnectedComponents.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/ConnectedComponents.scala
similarity index 96%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/ConnectedComponents.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/ConnectedComponents.scala
index 137a81f4d5384960a076a6700487e447eb352a46..4a83e2dbb80d27a8b6ee0853dda3fa05c1ef71f6 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/ConnectedComponents.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/ConnectedComponents.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import scala.reflect.ClassTag
 
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/PageRank.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/PageRank.scala
similarity index 99%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/PageRank.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/PageRank.scala
index ab447d54229035905fd5ce139ee4c40714b0fccf..809b6d0855901ce2069d88b5e1d3f969f540f37d 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/PageRank.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/PageRank.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import scala.reflect.ClassTag
 
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/SVDPlusPlus.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/SVDPlusPlus.scala
similarity index 99%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/SVDPlusPlus.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/SVDPlusPlus.scala
index 2a13553d7921c7eb508f5be3f196d609c812e7ed..f5570daec10d063824ff2b75d6416ffbe2aa0fd4 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/SVDPlusPlus.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/SVDPlusPlus.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.apache.spark.rdd._
 import org.apache.spark.graphx._
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/StronglyConnectedComponents.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/StronglyConnectedComponents.scala
similarity index 98%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/StronglyConnectedComponents.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/StronglyConnectedComponents.scala
index 864f0ec57caff37d4eebb8fc624fd929ef92a718..9bd227309a1d16e75e63311078ba586458d3731a 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/StronglyConnectedComponents.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/StronglyConnectedComponents.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import scala.reflect.ClassTag
 
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/TriangleCount.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/TriangleCount.scala
similarity index 98%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/TriangleCount.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/TriangleCount.scala
index b5a93c1bd19bb7f119551ec231d8a56c4603c4b6..c6b1c736dd6ffa14537c82a970b03dc75677a1a6 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/TriangleCount.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/TriangleCount.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import scala.reflect.ClassTag
 
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/package.scala b/graphx/src/main/scala/org/apache/spark/graphx/lib/package.scala
similarity index 87%
rename from graphx/src/main/scala/org/apache/spark/graphx/algorithms/package.scala
rename to graphx/src/main/scala/org/apache/spark/graphx/lib/package.scala
index fbabf1257cc99b6ab82cfebc864a478c6e06f791..f6f2626c9dc2d027db5b259cf358528a4ad913e4 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/algorithms/package.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/lib/package.scala
@@ -2,7 +2,7 @@ package org.apache.spark.graphx
 
 import scala.reflect.ClassTag
 
-package object algorithms {
+package object lib {
   implicit def graphToAlgorithms[VD: ClassTag, ED: ClassTag](
       graph: Graph[VD, ED]): Algorithms[VD, ED] = new Algorithms(graph)
 }
diff --git a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/ConnectedComponentsSuite.scala b/graphx/src/test/scala/org/apache/spark/graphx/lib/ConnectedComponentsSuite.scala
similarity index 98%
rename from graphx/src/test/scala/org/apache/spark/graphx/algorithms/ConnectedComponentsSuite.scala
rename to graphx/src/test/scala/org/apache/spark/graphx/lib/ConnectedComponentsSuite.scala
index 16fc3fe5a21c7534f72206817596db2461c4775b..66612b381f1938f212f5bc7326a2f31933e0efb7 100644
--- a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/ConnectedComponentsSuite.scala
+++ b/graphx/src/test/scala/org/apache/spark/graphx/lib/ConnectedComponentsSuite.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.scalatest.FunSuite
 
diff --git a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/PageRankSuite.scala b/graphx/src/test/scala/org/apache/spark/graphx/lib/PageRankSuite.scala
similarity index 97%
rename from graphx/src/test/scala/org/apache/spark/graphx/algorithms/PageRankSuite.scala
rename to graphx/src/test/scala/org/apache/spark/graphx/lib/PageRankSuite.scala
index de2c2d110773ce2c4fa4b93f5be659f08843dc6a..fe7e4261f8d03816a3122a02c764eb5bfef0d234 100644
--- a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/PageRankSuite.scala
+++ b/graphx/src/test/scala/org/apache/spark/graphx/lib/PageRankSuite.scala
@@ -1,11 +1,11 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.scalatest.FunSuite
 
 import org.apache.spark.SparkContext
 import org.apache.spark.SparkContext._
 import org.apache.spark.graphx._
-import org.apache.spark.graphx.algorithms._
+import org.apache.spark.graphx.lib._
 import org.apache.spark.graphx.util.GraphGenerators
 import org.apache.spark.rdd._
 
diff --git a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/SVDPlusPlusSuite.scala b/graphx/src/test/scala/org/apache/spark/graphx/lib/SVDPlusPlusSuite.scala
similarity index 95%
rename from graphx/src/test/scala/org/apache/spark/graphx/algorithms/SVDPlusPlusSuite.scala
rename to graphx/src/test/scala/org/apache/spark/graphx/lib/SVDPlusPlusSuite.scala
index 7bd93e0e6c000a4d1f7dc5a212ac127415a42fc3..a4a1cdab187f5c774a4be23834ede4a556ae245b 100644
--- a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/SVDPlusPlusSuite.scala
+++ b/graphx/src/test/scala/org/apache/spark/graphx/lib/SVDPlusPlusSuite.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.scalatest.FunSuite
 
diff --git a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/StronglyConnectedComponentsSuite.scala b/graphx/src/test/scala/org/apache/spark/graphx/lib/StronglyConnectedComponentsSuite.scala
similarity index 97%
rename from graphx/src/test/scala/org/apache/spark/graphx/algorithms/StronglyConnectedComponentsSuite.scala
rename to graphx/src/test/scala/org/apache/spark/graphx/lib/StronglyConnectedComponentsSuite.scala
index fee7d20161cf39d3556f111c2464a5754d2b39f4..04583116614524e8ddb70fa4ca0e7779dd116f03 100644
--- a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/StronglyConnectedComponentsSuite.scala
+++ b/graphx/src/test/scala/org/apache/spark/graphx/lib/StronglyConnectedComponentsSuite.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.scalatest.FunSuite
 
diff --git a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/TriangleCountSuite.scala b/graphx/src/test/scala/org/apache/spark/graphx/lib/TriangleCountSuite.scala
similarity index 98%
rename from graphx/src/test/scala/org/apache/spark/graphx/algorithms/TriangleCountSuite.scala
rename to graphx/src/test/scala/org/apache/spark/graphx/lib/TriangleCountSuite.scala
index b85b289da638be5a575d3f59d12d47d48df96687..a286b7d03b5486b100da1e201cae2c940a85a3c5 100644
--- a/graphx/src/test/scala/org/apache/spark/graphx/algorithms/TriangleCountSuite.scala
+++ b/graphx/src/test/scala/org/apache/spark/graphx/lib/TriangleCountSuite.scala
@@ -1,4 +1,4 @@
-package org.apache.spark.graphx.algorithms
+package org.apache.spark.graphx.lib
 
 import org.scalatest.FunSuite