Repository: incubator-madlib-site
Updated Branches:
  refs/heads/asf-site a7df2267a -> d7cb76fa4


add grouping example to SSSP notebook


Project: http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/commit/d7cb76fa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/tree/d7cb76fa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/diff/d7cb76fa

Branch: refs/heads/asf-site
Commit: d7cb76fa479648f3b90b47b1d310883ec21300f4
Parents: a7df226
Author: Frank McQuillan <fmcquil...@pivotal.io>
Authored: Mon Apr 17 11:13:20 2017 -0700
Committer: Frank McQuillan <fmcquil...@pivotal.io>
Committed: Mon Apr 17 11:13:20 2017 -0700

----------------------------------------------------------------------
 community-artifacts/SSSP-v1.ipynb |  573 -----------------
 community-artifacts/SSSP-v2.ipynb | 1090 ++++++++++++++++++++++++++++++++
 2 files changed, 1090 insertions(+), 573 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/d7cb76fa/community-artifacts/SSSP-v1.ipynb
----------------------------------------------------------------------
diff --git a/community-artifacts/SSSP-v1.ipynb 
b/community-artifacts/SSSP-v1.ipynb
deleted file mode 100644
index 6258ed0..0000000
--- a/community-artifacts/SSSP-v1.ipynb
+++ /dev/null
@@ -1,573 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# Single source shortest path (MADlib v1.10+)\n",
-    "Given a graph and a source vertex, the single source shortest path (SSSP) 
algorithm finds a path from the source vertex to every other vertex in the 
graph, such that the sum of the weights of the path's edges is minimized."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "The sql extension is already loaded. To reload it, use:\n",
-      "  %reload_ext sql\n"
-     ]
-    }
-   ],
-   "source": [
-    "%load_ext sql"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "u'Connected: gpdbchina@madlib'"
-      ]
-     },
-     "execution_count": 10,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql postgresql://gpdbchina@10.194.10.68:55000/madlib\n",
-    "#%sql postgresql://fmcquillan@localhost:5432/madlib\n",
-    "#%sql postgresql://gpadmin@54.197.30.46:10432/gpadmin"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>version</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>MADlib version: 1.10.0-dev, git revision: 
v1.7.1-206-g7907a6b, cmake configuration time: Wed Jan 18 18:26:02 UTC 2017, 
build type: Release, build system: Linux-2.6.18-238.27.1.el5.hotfix.bz516490, C 
compiler: gcc 4.4.0, C++ compiler: g++ 4.4.0</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(u'MADlib version: 1.10.0-dev, git revision: v1.7.1-206-g7907a6b, 
cmake configuration time: Wed Jan 18 18:26:02 UTC 2017, build type: Release, 
build system: Linux-2.6.18-238.27.1.el5.hotfix.bz516490, C compiler: gcc 4.4.0, 
C++ compiler: g++ 4.4.0',)]"
-      ]
-     },
-     "execution_count": 11,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%sql select madlib.version();\n",
-    "#%sql select version();"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# 1.  Create vertex and edge tables"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 84,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "Done.\n",
-      "Done.\n",
-      "8 rows affected.\n",
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "[]"
-      ]
-     },
-     "execution_count": 84,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql \n",
-    "DROP TABLE IF EXISTS vertex, edge;\n",
-    "\n",
-    "CREATE TABLE vertex(\n",
-    "        id INTEGER\n",
-    "        );\n",
-    "\n",
-    "CREATE TABLE edge(\n",
-    "        src INTEGER,\n",
-    "        dest INTEGER,\n",
-    "        weight FLOAT8\n",
-    "        );\n",
-    "\n",
-    "INSERT INTO vertex VALUES\n",
-    "(0),\n",
-    "(1),\n",
-    "(2),\n",
-    "(3),\n",
-    "(4),\n",
-    "(5),\n",
-    "(6),\n",
-    "(7);\n",
-    "\n",
-    "INSERT INTO edge VALUES\n",
-    "(0, 1, 1.0),\n",
-    "(0, 2, 1.0),\n",
-    "(0, 4, 10.0),\n",
-    "(1, 2, 2.0),\n",
-    "(1, 3, 10.0),\n",
-    "(2, 3, 1.0),\n",
-    "(2, 5, 1.0),\n",
-    "(2, 6, 3.0),\n",
-    "(3, 0, 1.0),\n",
-    "(4, 0, -2.0),\n",
-    "(5, 6, 1.0),\n",
-    "(6, 7, 1.0);"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# 2.  Calculate the shortest paths from vertex 0"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 85,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "8 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>id</th>\n",
-       "        <th>weight</th>\n",
-       "        <th>parent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0</td>\n",
-       "        <td>0.0</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>1.0</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>2.0</td>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>10.0</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>2.0</td>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>3.0</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>4.0</td>\n",
-       "        <td>6</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0, 0.0, 0),\n",
-       " (1, 1.0, 0),\n",
-       " (2, 1.0, 0),\n",
-       " (3, 2.0, 2),\n",
-       " (4, 10.0, 0),\n",
-       " (5, 2.0, 2),\n",
-       " (6, 3.0, 5),\n",
-       " (7, 4.0, 6)]"
-      ]
-     },
-     "execution_count": 85,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS out;\n",
-    "\n",
-    "SELECT madlib.graph_sssp(\n",
-    "                         'vertex',      -- Vertex table\n",
-    "                         NULL,          -- Vertix id column (NULL means 
use default naming)\n",
-    "                         'edge',        -- Edge table\n",
-    "                         NULL,          -- Edge arguments (NULL means use 
default naming)\n",
-    "                         0,             -- Source vertex for path 
calculation\n",
-    "                         'out');        -- Output table of shortest 
paths\n",
-    "\n",
-    "SELECT * FROM out ORDER BY id;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# 3.  Get the shortest path to vertex 6"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 50,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "1 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>spath</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>[0, 2, 5, 6]</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[([0, 2, 5, 6],)]"
-      ]
-     },
-     "execution_count": 50,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "SELECT madlib.graph_sssp_get_path('out',6) AS spath;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# 4.  Custom column names\n",
-    "i.e., not using defaults.  Create the vertex and edge tables:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 86,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "8 rows affected.\n",
-      "12 rows affected.\n",
-      "12 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>e_src</th>\n",
-       "        <th>dest</th>\n",
-       "        <th>e_weight</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0</td>\n",
-       "        <td>1</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0</td>\n",
-       "        <td>2</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0</td>\n",
-       "        <td>4</td>\n",
-       "        <td>10.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>0</td>\n",
-       "        <td>-2.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>3</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>5</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>6</td>\n",
-       "        <td>3.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>7</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>0</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>2</td>\n",
-       "        <td>2.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>3</td>\n",
-       "        <td>10.0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>6</td>\n",
-       "        <td>1.0</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0, 1, 1.0),\n",
-       " (0, 2, 1.0),\n",
-       " (0, 4, 10.0),\n",
-       " (4, 0, -2.0),\n",
-       " (2, 3, 1.0),\n",
-       " (2, 5, 1.0),\n",
-       " (2, 6, 3.0),\n",
-       " (6, 7, 1.0),\n",
-       " (3, 0, 1.0),\n",
-       " (1, 2, 2.0),\n",
-       " (1, 3, 10.0),\n",
-       " (5, 6, 1.0)]"
-      ]
-     },
-     "execution_count": 86,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql \n",
-    "DROP TABLE IF EXISTS vertex_alt,edge_alt;\n",
-    "CREATE TABLE vertex_alt AS SELECT id AS v_id FROM vertex;\n",
-    "CREATE TABLE edge_alt AS SELECT src AS e_src, dest, weight AS e_weight 
FROM edge;\n",
-    "SELECT * FROM edge_alt;"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# 5.0  Get the shortest path from vertex 1"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 87,
-   "metadata": {
-    "collapsed": false
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Done.\n",
-      "1 rows affected.\n",
-      "8 rows affected.\n"
-     ]
-    },
-    {
-     "data": {
-      "text/html": [
-       "<table>\n",
-       "    <tr>\n",
-       "        <th>v_id</th>\n",
-       "        <th>e_weight</th>\n",
-       "        <th>parent</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>0</td>\n",
-       "        <td>4.0</td>\n",
-       "        <td>3</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>1</td>\n",
-       "        <td>0.0</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>2</td>\n",
-       "        <td>2.0</td>\n",
-       "        <td>1</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>3</td>\n",
-       "        <td>3.0</td>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>4</td>\n",
-       "        <td>14.0</td>\n",
-       "        <td>0</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>5</td>\n",
-       "        <td>3.0</td>\n",
-       "        <td>2</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>6</td>\n",
-       "        <td>4.0</td>\n",
-       "        <td>5</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "        <td>7</td>\n",
-       "        <td>5.0</td>\n",
-       "        <td>6</td>\n",
-       "    </tr>\n",
-       "</table>"
-      ],
-      "text/plain": [
-       "[(0, 4.0, 3),\n",
-       " (1, 0.0, 1),\n",
-       " (2, 2.0, 1),\n",
-       " (3, 3.0, 2),\n",
-       " (4, 14.0, 0),\n",
-       " (5, 3.0, 2),\n",
-       " (6, 4.0, 5),\n",
-       " (7, 5.0, 6)]"
-      ]
-     },
-     "execution_count": 87,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "%%sql\n",
-    "DROP TABLE IF EXISTS out_alt;\n",
-    "\n",
-    "SELECT madlib.graph_sssp(\n",
-    "                         'vertex_alt',                  -- Vertex 
table\n",
-    "                         'v_id',                        -- Vertix id 
column (NULL means use default naming)\n",
-    "                         'edge_alt',                    -- Edge table\n",
-    "                         'src=e_src, weight=e_weight',  -- Edge arguments 
(NULL means use default naming)\n",
-    "                         1,                             -- Source vertex 
for path calculation\n",
-    "                         'out_alt');                    -- Output table 
of shortest paths\n",
-    "\n",
-    "SELECT * FROM out_alt ORDER BY v_id;"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 2",
-   "language": "python",
-   "name": "python2"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 2
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython2",
-   "version": "2.7.12"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 0
-}

http://git-wip-us.apache.org/repos/asf/incubator-madlib-site/blob/d7cb76fa/community-artifacts/SSSP-v2.ipynb
----------------------------------------------------------------------
diff --git a/community-artifacts/SSSP-v2.ipynb 
b/community-artifacts/SSSP-v2.ipynb
new file mode 100644
index 0000000..3a84d5a
--- /dev/null
+++ b/community-artifacts/SSSP-v2.ipynb
@@ -0,0 +1,1090 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Single source shortest path\n",
+    "Given a graph and a source vertex, the single source shortest path (SSSP) 
algorithm finds a path from the source vertex to every other vertex in the 
graph, such that the sum of the weights of the path's edges is minimized.\n",
+    "\n",
+    "SSSP was added in MADlib 1.10 and grouping was added in 1.11."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The sql extension is already loaded. To reload it, use:\n",
+      "  %reload_ext sql\n"
+     ]
+    }
+   ],
+   "source": [
+    "%load_ext sql"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "u'Connected: gpdbchina@madlib'"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Greenplum 4.3.10.0\n",
+    "%sql postgresql://gpdbchina@10.194.10.68:61000/madlib\n",
+    "        \n",
+    "# PostgreSQL local\n",
+    "#%sql postgresql://fmcquillan@localhost:5432/madlib\n",
+    "\n",
+    "# Greenplum 4.2.3.0\n",
+    "#%sql postgresql://gpdbchina@10.194.10.68:55000/madlib"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>version</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>MADlib version: 1.11-dev, git revision: 
rel/v1.9.1-74-g1cc0efc, cmake configuration time: Fri Apr 14 23:56:52 UTC 2017, 
build type: Release, build system: Linux-2.6.18-238.27.1.el5.hotfix.bz516490, C 
compiler: gcc 4.4.0, C++ compiler: g++ 4.4.0</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(u'MADlib version: 1.11-dev, git revision: rel/v1.9.1-74-g1cc0efc, 
cmake configuration time: Fri Apr 14 23:56:52 UTC 2017, build type: Release, 
build system: Linux-2.6.18-238.27.1.el5.hotfix.bz516490, C compiler: gcc 4.4.0, 
C++ compiler: g++ 4.4.0',)]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%sql select madlib.version();\n",
+    "#%sql select version();"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 1.  Create vertex and edge tables"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "Done.\n",
+      "Done.\n",
+      "8 rows affected.\n",
+      "12 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>src</th>\n",
+       "        <th>dest</th>\n",
+       "        <th>weight</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>2.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>3</td>\n",
+       "        <td>10.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>5</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>6</td>\n",
+       "        <td>3.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>0</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>0</td>\n",
+       "        <td>-2.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>6</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>7</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, 1, 1.0),\n",
+       " (0, 2, 1.0),\n",
+       " (0, 4, 10.0),\n",
+       " (1, 2, 2.0),\n",
+       " (1, 3, 10.0),\n",
+       " (2, 3, 1.0),\n",
+       " (2, 5, 1.0),\n",
+       " (2, 6, 3.0),\n",
+       " (3, 0, 1.0),\n",
+       " (4, 0, -2.0),\n",
+       " (5, 6, 1.0),\n",
+       " (6, 7, 1.0)]"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS vertex, edge;\n",
+    "\n",
+    "CREATE TABLE vertex(\n",
+    "        id INTEGER\n",
+    "        );\n",
+    "\n",
+    "CREATE TABLE edge(\n",
+    "        src INTEGER,\n",
+    "        dest INTEGER,\n",
+    "        weight FLOAT8\n",
+    "        );\n",
+    "\n",
+    "INSERT INTO vertex VALUES\n",
+    "(0),\n",
+    "(1),\n",
+    "(2),\n",
+    "(3),\n",
+    "(4),\n",
+    "(5),\n",
+    "(6),\n",
+    "(7);\n",
+    "\n",
+    "INSERT INTO edge VALUES\n",
+    "(0, 1, 1.0),\n",
+    "(0, 2, 1.0),\n",
+    "(0, 4, 10.0),\n",
+    "(1, 2, 2.0),\n",
+    "(1, 3, 10.0),\n",
+    "(2, 3, 1.0),\n",
+    "(2, 5, 1.0),\n",
+    "(2, 6, 3.0),\n",
+    "(3, 0, 1.0),\n",
+    "(4, 0, -2.0),\n",
+    "(5, 6, 1.0),\n",
+    "(6, 7, 1.0);\n",
+    "\n",
+    "SELECT * FROM edge ORDER BY src, dest;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 2.  Calculate the shortest paths from vertex 0"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "8 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>id</th>\n",
+       "        <th>weight</th>\n",
+       "        <th>parent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>0.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>3.0</td>\n",
+       "        <td>5</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>4.0</td>\n",
+       "        <td>6</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, 0.0, 0),\n",
+       " (1, 1.0, 0),\n",
+       " (2, 1.0, 0),\n",
+       " (3, 2.0, 2),\n",
+       " (4, 10.0, 0),\n",
+       " (5, 2.0, 2),\n",
+       " (6, 3.0, 5),\n",
+       " (7, 4.0, 6)]"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS out, out_summary;\n",
+    "\n",
+    "SELECT madlib.graph_sssp(\n",
+    "                         'vertex',      -- Vertex table\n",
+    "                         NULL,          -- Vertex id column (NULL means 
use default naming)\n",
+    "                         'edge',        -- Edge table\n",
+    "                         NULL,          -- Edge arguments (NULL means use 
default naming)\n",
+    "                         0,             -- Source vertex for path 
calculation\n",
+    "                         'out');        -- Output table of shortest 
paths\n",
+    "\n",
+    "SELECT * FROM out ORDER BY id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 3.  Get the shortest path to vertex 5"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "1 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>path</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>[0, 2, 5]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[([0, 2, 5],)]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS out_path;\n",
+    "SELECT madlib.graph_sssp_get_path('out',5, 'out_path');\n",
+    "SELECT * FROM out_path;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 4.  Custom column names\n",
+    "Now let's do a similar example except using different column names in the 
tables (i.e., not the defaults). Create the vertex and edge tables:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "8 rows affected.\n",
+      "12 rows affected.\n",
+      "12 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>e_src</th>\n",
+       "        <th>dest</th>\n",
+       "        <th>e_weight</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>2.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>3</td>\n",
+       "        <td>10.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>5</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>6</td>\n",
+       "        <td>3.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>0</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>0</td>\n",
+       "        <td>-2.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>6</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>7</td>\n",
+       "        <td>1.0</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, 1, 1.0),\n",
+       " (0, 2, 1.0),\n",
+       " (0, 4, 10.0),\n",
+       " (1, 2, 2.0),\n",
+       " (1, 3, 10.0),\n",
+       " (2, 3, 1.0),\n",
+       " (2, 5, 1.0),\n",
+       " (2, 6, 3.0),\n",
+       " (3, 0, 1.0),\n",
+       " (4, 0, -2.0),\n",
+       " (5, 6, 1.0),\n",
+       " (6, 7, 1.0)]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql \n",
+    "DROP TABLE IF EXISTS vertex_alt, edge_alt;\n",
+    "CREATE TABLE vertex_alt AS SELECT id AS v_id FROM vertex;\n",
+    "CREATE TABLE edge_alt AS SELECT src AS e_src, dest, weight AS e_weight 
FROM edge;\n",
+    "SELECT * FROM edge_alt ORDER BY e_src, dest;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 5.0  Get the shortest path from vertex 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "8 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>v_id</th>\n",
+       "        <th>e_weight</th>\n",
+       "        <th>parent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>4.0</td>\n",
+       "        <td>3</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>0.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>3.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>14.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>3.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>4.0</td>\n",
+       "        <td>5</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>7</td>\n",
+       "        <td>5.0</td>\n",
+       "        <td>6</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, 4.0, 3),\n",
+       " (1, 0.0, 1),\n",
+       " (2, 2.0, 1),\n",
+       " (3, 3.0, 2),\n",
+       " (4, 14.0, 0),\n",
+       " (5, 3.0, 2),\n",
+       " (6, 4.0, 5),\n",
+       " (7, 5.0, 6)]"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS out_alt, out_alt_summary;\n",
+    "\n",
+    "SELECT madlib.graph_sssp(\n",
+    "                         'vertex_alt',                  -- Vertex 
table\n",
+    "                         'v_id',                        -- Vertix id 
column (NULL means use default naming)\n",
+    "                         'edge_alt',                    -- Edge table\n",
+    "                         'src=e_src, weight=e_weight',  -- Edge arguments 
(NULL means use default naming)\n",
+    "                         1,                             -- Source vertex 
for path calculation\n",
+    "                         'out_alt');                    -- Output table 
of shortest paths\n",
+    "\n",
+    "SELECT * FROM out_alt ORDER BY v_id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# 6.0 Grouping\n",
+    "Create a graph with 2 groups and find SSSP for each group:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "21 rows affected.\n",
+      "1 rows affected.\n",
+      "22 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>src</th>\n",
+       "        <th>dest</th>\n",
+       "        <th>weight</th>\n",
+       "        <th>grp</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>3</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>5</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>6</td>\n",
+       "        <td>3.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>0</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>0</td>\n",
+       "        <td>-2.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>5</td>\n",
+       "        <td>6</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>6</td>\n",
+       "        <td>7</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>3</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>3</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>2</td>\n",
+       "        <td>5</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>3</td>\n",
+       "        <td>0</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>0</td>\n",
+       "        <td>-2.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>4</td>\n",
+       "        <td>5</td>\n",
+       "        <td>-20.0</td>\n",
+       "        <td>1</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, 1, 1.0, 0),\n",
+       " (0, 2, 1.0, 0),\n",
+       " (0, 4, 10.0, 0),\n",
+       " (1, 2, 2.0, 0),\n",
+       " (1, 3, 10.0, 0),\n",
+       " (2, 3, 1.0, 0),\n",
+       " (2, 5, 1.0, 0),\n",
+       " (2, 6, 3.0, 0),\n",
+       " (3, 0, 1.0, 0),\n",
+       " (4, 0, -2.0, 0),\n",
+       " (5, 6, 1.0, 0),\n",
+       " (6, 7, 1.0, 0),\n",
+       " (0, 1, 1.0, 1),\n",
+       " (0, 2, 1.0, 1),\n",
+       " (0, 4, 10.0, 1),\n",
+       " (1, 2, 2.0, 1),\n",
+       " (1, 3, 10.0, 1),\n",
+       " (2, 3, 1.0, 1),\n",
+       " (2, 5, 1.0, 1),\n",
+       " (3, 0, 1.0, 1),\n",
+       " (4, 0, -2.0, 1),\n",
+       " (4, 5, -20.0, 1)]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS edge_gr;\n",
+    "\n",
+    "CREATE TABLE edge_gr AS\n",
+    "(\n",
+    "  SELECT *, 0 AS grp FROM edge\n",
+    "  UNION\n",
+    "  SELECT *, 1 AS grp FROM edge WHERE src < 6 AND dest < 6\n",
+    ");\n",
+    "\n",
+    "INSERT INTO edge_gr VALUES\n",
+    "(4,5,-20,1);\n",
+    "\n",
+    "SELECT * FROM edge_gr ORDER BY grp, src, dest;"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "14 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>grp</th>\n",
+       "        <th>id</th>\n",
+       "        <th>weight</th>\n",
+       "        <th>parent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>0</td>\n",
+       "        <td>0.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>3</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>5</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>6</td>\n",
+       "        <td>3.0</td>\n",
+       "        <td>5</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>7</td>\n",
+       "        <td>4.0</td>\n",
+       "        <td>6</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>0</td>\n",
+       "        <td>0.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>1</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>2</td>\n",
+       "        <td>1.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>3</td>\n",
+       "        <td>2.0</td>\n",
+       "        <td>2</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>4</td>\n",
+       "        <td>10.0</td>\n",
+       "        <td>0</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>5</td>\n",
+       "        <td>-10.0</td>\n",
+       "        <td>4</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, 0, 0.0, 0),\n",
+       " (0, 1, 1.0, 0),\n",
+       " (0, 2, 1.0, 0),\n",
+       " (0, 3, 2.0, 2),\n",
+       " (0, 4, 10.0, 0),\n",
+       " (0, 5, 2.0, 2),\n",
+       " (0, 6, 3.0, 5),\n",
+       " (0, 7, 4.0, 6),\n",
+       " (1, 0, 0.0, 0),\n",
+       " (1, 1, 1.0, 0),\n",
+       " (1, 2, 1.0, 0),\n",
+       " (1, 3, 2.0, 2),\n",
+       " (1, 4, 10.0, 0),\n",
+       " (1, 5, -10.0, 4)]"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS out_gr, out_gr_summary;\n",
+    "SELECT madlib.graph_sssp(\n",
+    "                         'vertex',      -- Vertex table\n",
+    "                         NULL,          -- Vertex id column (NULL means 
use default naming)\n",
+    "                         'edge_gr',     -- Edge table\n",
+    "                         NULL,          -- Edge arguments (NULL means use 
default naming)\n",
+    "                         0,             -- Source vertex for path 
calculation\n",
+    "                         'out_gr',      -- Output table of shortest 
paths\n",
+    "                         'grp'          -- Grouping columns\n",
+    ");\n",
+    "\n",
+    "SELECT * FROM out_gr ORDER BY grp, id;"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Find the path to vertex 5 for every group:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Done.\n",
+      "1 rows affected.\n",
+      "2 rows affected.\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <th>grp</th>\n",
+       "        <th>path</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>0</td>\n",
+       "        <td>[0, 2, 5]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "        <td>1</td>\n",
+       "        <td>[0, 4, 5]</td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "[(0, [0, 2, 5]), (1, [0, 4, 5])]"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "%%sql\n",
+    "DROP TABLE IF EXISTS out_gr_path;\n",
+    "SELECT madlib.graph_sssp_get_path('out_gr',5,'out_gr_path');\n",
+    "SELECT * FROM out_gr_path ORDER BY grp;"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 2
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython2",
+   "version": "2.7.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}


Reply via email to