<!DOCTYPE html> <html> <head> <meta name="databricks-html-version" content="1"> <title>054_Yuki_Katoh_GSW_Passing_Analysis - Databricks</title> <meta charset="utf-8"> <meta name="google" content="notranslate"> <meta http-equiv="Content-Language" content="en"> <meta http-equiv="Content-Type" content="text/html; charset=UTF8"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700"> <link rel="stylesheet" type="text/css" href="https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/lib/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/lib/jquery-ui-bundle/jquery-ui.min.css"> <link rel="stylesheet" type="text/css" href="https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/css/main.css"> <link rel="stylesheet" href="https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/css/print.css" media="print"> <link rel="icon" type="image/png" href="https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/img/favicon.ico"/> <script>window.settings = {"sparkDocsSearchGoogleCx":"004588677886978090460:_rj0wilqwdm","dbcForumURL":"http://forums.databricks.com/","dbfsS3Host":"https://databricks-prod-storage-sydney.s3.amazonaws.com","enableThirdPartyApplicationsUI":false,"enableClusterAcls":false,"notebookRevisionVisibilityHorizon":0,"enableTableHandler":true,"isAdmin":true,"enableLargeResultDownload":false,"nameAndEmail":"Raazesh Sainudiin (r.sainudiin@math.canterbury.ac.nz)","enablePresentationTimerConfig":true,"enableFullTextSearch":true,"enableElasticSparkUI":true,"clusters":true,"hideOffHeapCache":false,"applications":false,"useStaticGuide":false,"fileStoreBase":"FileStore","configurableSparkOptionsSpec":[{"keyPattern":"spark\\.kryo(\\.[^\\.]+)+","valuePattern":".*","keyPatternDisplay":"spark.kryo.*","valuePatternDisplay":"*","description":"Configuration options for Kryo serialization"},{"keyPattern":"spark\\.io\\.compression\\.codec","valuePattern":"(lzf|snappy|org\\.apache\\.spark\\.io\\.LZFCompressionCodec|org\\.apache\\.spark\\.io\\.SnappyCompressionCodec)","keyPatternDisplay":"spark.io.compression.codec","valuePatternDisplay":"snappy|lzf","description":"The codec used to compress internal data such as RDD partitions, broadcast variables and shuffle outputs."},{"keyPattern":"spark\\.serializer","valuePattern":"(org\\.apache\\.spark\\.serializer\\.JavaSerializer|org\\.apache\\.spark\\.serializer\\.KryoSerializer)","keyPatternDisplay":"spark.serializer","valuePatternDisplay":"org.apache.spark.serializer.JavaSerializer|org.apache.spark.serializer.KryoSerializer","description":"Class to use for serializing objects that will be sent over the network or need to be cached in serialized form."},{"keyPattern":"spark\\.rdd\\.compress","valuePattern":"(true|false)","keyPatternDisplay":"spark.rdd.compress","valuePatternDisplay":"true|false","description":"Whether to compress serialized RDD partitions (e.g. for StorageLevel.MEMORY_ONLY_SER). Can save substantial space at the cost of some extra CPU time."},{"keyPattern":"spark\\.speculation","valuePattern":"(true|false)","keyPatternDisplay":"spark.speculation","valuePatternDisplay":"true|false","description":"Whether to use speculation (recommended off for streaming)"},{"keyPattern":"spark\\.es(\\.[^\\.]+)+","valuePattern":".*","keyPatternDisplay":"spark.es.*","valuePatternDisplay":"*","description":"Configuration options for ElasticSearch"},{"keyPattern":"es(\\.([^\\.]+))+","valuePattern":".*","keyPatternDisplay":"es.*","valuePatternDisplay":"*","description":"Configuration options for ElasticSearch"},{"keyPattern":"spark\\.(storage|shuffle)\\.memoryFraction","valuePattern":"0?\\.0*([1-9])([0-9])*","keyPatternDisplay":"spark.(storage|shuffle).memoryFraction","valuePatternDisplay":"(0.0,1.0)","description":"Fraction of Java heap to use for Spark's shuffle or storage"},{"keyPattern":"spark\\.streaming\\.backpressure\\.enabled","valuePattern":"(true|false)","keyPatternDisplay":"spark.streaming.backpressure.enabled","valuePatternDisplay":"true|false","description":"Enables or disables Spark Streaming's internal backpressure mechanism (since 1.5). This enables the Spark Streaming to control the receiving rate based on the current batch scheduling delays and processing times so that the system receives only as fast as the system can process. Internally, this dynamically sets the maximum receiving rate of receivers. This rate is upper bounded by the values `spark.streaming.receiver.maxRate` and `spark.streaming.kafka.maxRatePerPartition` if they are set."},{"keyPattern":"spark\\.streaming\\.receiver\\.maxRate","valuePattern":"^([0-9]{1,})$","keyPatternDisplay":"spark.streaming.receiver.maxRate","valuePatternDisplay":"numeric","description":"Maximum rate (number of records per second) at which each receiver will receive data. Effectively, each stream will consume at most this number of records per second. Setting this configuration to 0 or a negative number will put no limit on the rate. See the deployment guide in the Spark Streaming programing guide for mode details."},{"keyPattern":"spark\\.streaming\\.kafka\\.maxRatePerPartition","valuePattern":"^([0-9]{1,})$","keyPatternDisplay":"spark.streaming.kafka.maxRatePerPartition","valuePatternDisplay":"numeric","description":"Maximum rate (number of records per second) at which data will be read from each Kafka partition when using the Kafka direct stream API introduced in Spark 1.3. See the Kafka Integration guide for more details."},{"keyPattern":"spark\\.streaming\\.kafka\\.maxRetries","valuePattern":"^([0-9]{1,})$","keyPatternDisplay":"spark.streaming.kafka.maxRetries","valuePatternDisplay":"numeric","description":"Maximum number of consecutive retries the driver will make in order to find the latest offsets on the leader of each partition (a default value of 1 means that the driver will make a maximum of 2 attempts). Only applies to the Kafka direct stream API introduced in Spark 1.3."},{"keyPattern":"spark\\.streaming\\.ui\\.retainedBatches","valuePattern":"^([0-9]{1,})$","keyPatternDisplay":"spark.streaming.ui.retainedBatches","valuePatternDisplay":"numeric","description":"How many batches the Spark Streaming UI and status APIs remember before garbage collecting."}],"enableReactNotebookComments":true,"enableResetPassword":true,"enableJobsSparkUpgrade":true,"sparkVersions":[{"key":"1.3.x-ubuntu15.10","displayName":"Spark 1.3.0","packageLabel":"spark-1.3-jenkins-ip-10-30-9-162-U0c2673ac85-Sa2ee4664b2-2016-02-09-02:05:59.455061","upgradable":true,"deprecated":false,"customerVisible":true},{"key":"1.4.x-ubuntu15.10","displayName":"Spark 1.4.1","packageLabel":"spark-1.4-jenkins-ip-10-30-9-162-U0c2673ac85-S33a1e4b9c6-2016-02-09-02:05:59.455061","upgradable":true,"deprecated":false,"customerVisible":true},{"key":"1.5.x-ubuntu15.10","displayName":"Spark 1.5.2","packageLabel":"spark-1.5-jenkins-ip-10-30-9-162-U0c2673ac85-S5917a1044d-2016-02-09-02:05:59.455061","upgradable":true,"deprecated":false,"customerVisible":true},{"key":"1.6.x-ubuntu15.10","displayName":"Spark 1.6.0","packageLabel":"spark-1.6-jenkins-ip-10-30-9-162-U0c2673ac85-Scabba801f3-2016-02-09-02:05:59.455061","upgradable":true,"deprecated":false,"customerVisible":true},{"key":"master","displayName":"Spark master (dev)","packageLabel":"","upgradable":true,"deprecated":false,"customerVisible":false}],"enableRestrictedClusterCreation":false,"enableFeedback":false,"defaultNumWorkers":8,"serverContinuationTimeoutMillis":10000,"driverStderrFilePrefix":"stderr","driverStdoutFilePrefix":"stdout","enableSparkDocsSearch":true,"prefetchSidebarNodes":true,"sparkHistoryServerEnabled":true,"sanitizeMarkdownHtml":true,"enableIPythonImportExport":true,"enableNotebookHistoryDiffing":true,"branch":"2.12.3","accountsLimit":-1,"enableNotebookGitBranching":true,"local":false,"displayDefaultContainerMemoryGB":6,"deploymentMode":"production","useSpotForWorkers":false,"enableUserInviteWorkflow":false,"enableStaticNotebooks":true,"dbcGuideURL":"#workspace/databricks_guide/00 Welcome to Databricks","enableCssTransitions":true,"pricingURL":"https://databricks.com/product/pricing","enableClusterAclsConfig":false,"orgId":0,"enableNotebookGitVersioning":true,"files":"files/","enableDriverLogsUI":true,"disableLegacyDashboards":false,"enableWorkspaceAclsConfig":true,"dropzoneMaxFileSize":4096,"enableNewDashboardViews":false,"driverLog4jFilePrefix":"log4j","enableMavenLibraries":true,"displayRowLimit":1000,"defaultSparkVersion":{"key":"1.5.x-ubuntu15.10","displayName":"Spark 1.5.2","packageLabel":"spark-1.5-jenkins-ip-10-30-9-162-U0c2673ac85-S5917a1044d-2016-02-09-02:05:59.455061","upgradable":true,"deprecated":false,"customerVisible":true},"clusterPublisherRootId":5,"enableLatestJobRunResultPermalink":true,"disallowAddingAdmins":false,"enableSparkConfUI":true,"enableOrgSwitcherUI":false,"clustersLimit":-1,"enableJdbcImport":true,"logfiles":"logfiles/","enableWebappSharding":false,"enableClusterDeltaUpdates":true,"csrfToken":"4c37e4ff-a908-4b05-8c61-2b76819fa34c","useFixedStaticNotebookVersionForDevelopment":false,"enableBasicReactDialogBoxes":true,"requireEmailUserName":true,"enableDashboardViews":false,"dbcFeedbackURL":"http://feedback.databricks.com/forums/263785-product-feedback","enableWorkspaceAclService":true,"someName":"Raazesh Sainudiin","enableWorkspaceAcls":true,"gitHash":"0c2673ac858e227cad536fdb45d140aeded238db","userFullname":"Raazesh Sainudiin","enableClusterCreatePage":false,"enableImportFromUrl":true,"enableMiniClusters":false,"enableWebSocketDeltaUpdates":true,"enableDebugUI":false,"showHiddenSparkVersions":false,"allowNonAdminUsers":true,"userId":100005,"dbcSupportURL":"","staticNotebookResourceUrl":"https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/","enableSparkPackages":true,"enableHybridClusterType":false,"enableNotebookHistoryUI":true,"availableWorkspaces":[{"name":"Workspace 0","orgId":0}],"enableFolderHtmlExport":true,"enableSparkVersionsUI":true,"databricksGuideStaticUrl":"","enableHybridClusters":true,"notebookLoadingBackground":"#fff","enableNewJobRunDetailsPage":true,"enableDashboardExport":true,"user":"r.sainudiin@math.canterbury.ac.nz","enableServerAutoComplete":true,"enableStaticHtmlImport":true,"defaultMemoryPerContainerMB":6000,"enablePresenceUI":true,"tablesPublisherRootId":7,"enableNewInputWidgetUI":false,"accounts":true,"enableNewProgressReportUI":true,"defaultCoresPerContainer":4};</script> <script>var __DATABRICKS_NOTEBOOK_MODEL = {"version":"NotebookV1","origId":123589,"name":"054_Yuki_Katoh_GSW_Passing_Analysis","language":"python","commands":[{"version":"CommandV1","origId":123591,"guid":"63adc243-7e2e-4839-acef-5f1894678df1","subtype":"command","commandType":"auto","position":0.75,"command":"%md\n# Analyzing Golden State Warriors' passing network using GraphFrames\n\n** This notebook is created by [Yuki Katoh](https://de.linkedin.com/in/yukiegosapporo) and is a modified version of the article originally posted to [Opiate for the masses](http://opiateforthemass.es/articles/analyzing-golden-state-warriors-passing-network-using-graphframes-in-spark/) **\n\n** Dataset: Golden State Warriors's pass data in 2015-16 regular season given by [NBA.com](http://stats.nba.com/) **\n\n** Source: http://stats.nba.com/ **\n\n\n<img width=\"1000px\" src=\"https://github.com/yukiegosapporo/gsw_passing_network/blob/master/network.png?raw=true\"/>\n\n<i>*This notebook requires Spark 1.6+</i>","commandVersion":0,"state":"finished","results":null,"errorSummary":null,"error":null,"startTime":0.0,"submitTime":1.460070996302E12,"finishTime":0.0,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"istoica@databricks.com","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"e3877c52-8119-4b1b-8dd3-e86236e1960d"},{"version":"CommandV1","origId":140765,"guid":"79f64586-d11f-4604-bc6a-35083da0541e","subtype":"command","commandType":"auto","position":0.8125,"command":"%md\nView the [html source url](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/db/studentProjects/07_MatthewHendtlass/054_Yuki_Katoh_GSW_Passing_Analysis.html) of this databricks notebook","commandVersion":0,"state":"error","results":null,"errorSummary":null,"error":null,"startTime":0.0,"submitTime":0.0,"finishTime":0.0,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"bd119a66-bb12-46c8-9b5a-72a89fb61095"},{"version":"CommandV1","origId":123592,"guid":"9359c6bf-7fc6-4711-959d-b42e625a07a9","subtype":"command","commandType":"auto","position":0.875,"command":"%md **WARNING:** Install the *graphframe* library before running the following commands. For instructions, see [here](https://databricks-staging-cloudfront.staging.cloud.databricks.com/public/c65da9a2fa40e45a2028cddebe45b54c/8637560089690848/2998808121595179/6977722904629137/latest.html).","commandVersion":0,"state":"error","results":null,"errorSummary":null,"error":null,"startTime":0.0,"submitTime":0.0,"finishTime":0.0,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"bb003f83-ffec-4df4-a04f-784f1c549ff7"},{"version":"CommandV1","origId":123593,"guid":"eccb5886-409f-41cc-b1b4-4a7e982e40ee","subtype":"command","commandType":"auto","position":1.0,"command":"from graphframes import *\nimport pandas as pd\nimport os\nimport json","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"<span class=\"ansired\">ImportError</span>: No module named graphframes","error":"<div class=\"ansiout\"><span class=\"ansired\">---------------------------------------------------------------------------</span>\n<span class=\"ansired\">ImportError</span> Traceback (most recent call last)\n<span class=\"ansigreen\"><ipython-input-1-de9d5c480d3c></span> in <span class=\"ansicyan\"><module></span><span class=\"ansiblue\">()</span>\n<span class=\"ansigreen\"> 1</span> <span class=\"ansired\"># Save graphframes library http://dl.bintray.com/spark-packages/maven/graphframes/graphframes/0.1.0-spark1.6/graphframes-0.1.0-spark1.6.jar to "Worksoace/Shared/graphframe" before running the following commands</span><span class=\"ansiyellow\"></span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 2</span> <span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\">----> 3</span><span class=\"ansiyellow\"> </span><span class=\"ansigreen\">from</span> graphframes <span class=\"ansigreen\">import</span> <span class=\"ansiyellow\">*</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 4</span> <span class=\"ansigreen\">import</span> pandas <span class=\"ansigreen\">as</span> pd<span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 5</span> <span class=\"ansigreen\">import</span> os<span class=\"ansiyellow\"></span>\n\n<span class=\"ansired\">ImportError</span>: No module named graphframes\n</div>","startTime":1.464493865374E12,"submitTime":1.464493675653E12,"finishTime":1.464493865747E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"4722b149-ae7d-44fe-ab90-4f2f42adff69"},{"version":"CommandV1","origId":123594,"guid":"525cf923-328a-4994-8dc1-c7955dd7d29e","subtype":"command","commandType":"auto","position":2.0,"command":"# Get player IDs of Golden State Warriors\nplayerids = [201575, 201578, 2738, 202691, 101106, 2760, 2571, 203949, 203546, 203110, 201939, 203105, 2733, 1626172, 203084]","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493867581E12,"submitTime":1.464493677862E12,"finishTime":1.464493867662E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"f3fb79c2-11b4-4751-97b5-8f2370bb38e6"},{"version":"CommandV1","origId":123595,"guid":"f1431b58-ec89-441c-b6cc-867f05266040","subtype":"command","commandType":"auto","position":3.0,"command":"# Call stats.nba.com API and save pass data for each player as local JSON files\nfor playerid in playerids:\n os.system('curl \"http://stats.nba.com/stats/playerdashptpass?'\n 'DateFrom=&'\n 'DateTo=&'\n 'GameSegment=&'\n 'LastNGames=0&'\n 'LeagueID=00&'\n 'Location=&'\n 'Month=0&'\n 'OpponentTeamID=0&'\n 'Outcome=&'\n 'PerMode=Totals&'\n 'Period=0&'\n 'PlayerID={playerid}&'\n 'Season=2015-16&'\n 'SeasonSegment=&'\n 'SeasonType=Regular+Season&'\n 'TeamID=0&'\n 'VsConference=&'\n 'VsDivision=\" > {playerid}.json'.format(playerid=playerid))","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493869687E12,"submitTime":1.46449367998E12,"finishTime":1.464493879256E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"e9dae8f6-7509-4bc8-926e-851a4c7f7f81"},{"version":"CommandV1","origId":123596,"guid":"a94d5389-84fe-4fd3-8a8a-a2fa19c3c4c0","subtype":"command","commandType":"auto","position":4.0,"command":"# Parse JSON files and create pandas DataFrame\nraw = pd.DataFrame()\nfor playerid in playerids:\n with open(\"{playerid}.json\".format(playerid=playerid)) as json_file:\n parsed = json.load(json_file)['resultSets'][0]\n raw = raw.append(\n pd.DataFrame(parsed['rowSet'], columns=parsed['headers']))\n\nraw = raw.rename(columns={'PLAYER_NAME_LAST_FIRST': 'PLAYER'})\nraw['id'] = raw['PLAYER'].str.replace(', ', '')","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.46449387926E12,"submitTime":1.464493682222E12,"finishTime":1.464493879444E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"f6fe4dc2-5eec-457e-8d34-6fba10f864cf"},{"version":"CommandV1","origId":123597,"guid":"38a3806c-c0c4-4d34-a144-287c31843907","subtype":"command","commandType":"auto","position":4.5,"command":"# Create passes\npasses = raw[raw['PASS_TO']\n.isin(raw['PLAYER'])][['PLAYER', 'PASS_TO','PASS']]","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493879448E12,"submitTime":1.464493682691E12,"finishTime":1.4644938795E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"5958e1bb-639f-44e2-a0a0-52e097d17ec0"},{"version":"CommandV1","origId":123598,"guid":"c32897eb-83c7-4987-9b54-d2767bf4c114","subtype":"command","commandType":"auto","position":6.0,"command":"# Make raw vertices\npandas_vertices = raw[['PLAYER', 'id']].drop_duplicates()\npandas_vertices.columns = ['name', 'id']","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493879504E12,"submitTime":1.464493683123E12,"finishTime":1.464493879552E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"ebfc094f-0d81-4500-bd5f-2bc30ed0c257"},{"version":"CommandV1","origId":123599,"guid":"68822454-d7cc-4c35-8de9-70aabe7bd72d","subtype":"command","commandType":"auto","position":7.0,"command":"# Make raw edges\npandas_edges = pd.DataFrame()\nfor passer in raw['id'].drop_duplicates():\n for receiver in raw[(raw['PASS_TO'].isin(raw['PLAYER'])) &\n (raw['id'] == passer)]['PASS_TO'].drop_duplicates():\n pandas_edges = pandas_edges.append(pd.DataFrame(\n \t{'passer': passer, 'receiver': receiver\n \t.replace( ', ', '')}, \n \tindex=range(int(raw[(raw['id'] == passer) &\n \t (raw['PASS_TO'] == receiver)]['PASS'].values))))\n\npandas_edges.columns = ['src', 'dst']","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493879555E12,"submitTime":1.464493685028E12,"finishTime":1.464493880302E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"4d427da6-062f-4a01-81bf-4a281df30302"},{"version":"CommandV1","origId":123600,"guid":"453978fc-b68d-4a04-9e57-2bf14d04b2cb","subtype":"command","commandType":"auto","position":8.0,"command":"# Bring the local vertices and edges to Spark\nvertices = sqlContext.createDataFrame(pandas_vertices)\nedges = sqlContext.createDataFrame(pandas_edges)","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493880307E12,"submitTime":1.464493685583E12,"finishTime":1.464493880595E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"34f4c984-4d24-4fe9-bec2-249f2a101b97"},{"version":"CommandV1","origId":123601,"guid":"a24a6ee4-db66-4894-b70b-de9b0c73e7fd","subtype":"command","commandType":"auto","position":9.0,"command":"# Create GraphFrame\ng = GraphFrame(vertices, edges)","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493880599E12,"submitTime":1.464493689004E12,"finishTime":1.46449388073E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"89528c0a-3fd3-4371-864d-2b09769a3b27"},{"version":"CommandV1","origId":123602,"guid":"33b66e7e-dc34-42a4-9a36-94909fd56b7e","subtype":"command","commandType":"auto","position":10.0,"command":"# Print vertices\ng.vertices.show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+--------------------+-------------------+\n| name| id|\n+--------------------+-------------------+\n| Rush, Brandon| RushBrandon|\n| Speights, Marreese| SpeightsMarreese|\n| Iguodala, Andre| IguodalaAndre|\n| Thompson, Klay| ThompsonKlay|\n| Bogut, Andrew| BogutAndrew|\n| Varejao, Anderson| VarejaoAnderson|\n| Barbosa, Leandro| BarbosaLeandro|\n|McAdoo, James Mic...|McAdooJames Michael|\n| Clark, Ian| ClarkIan|\n| Green, Draymond| GreenDraymond|\n| Curry, Stephen| CurryStephen|\n| Ezeli, Festus| EzeliFestus|\n| Livingston, Shaun| LivingstonShaun|\n| Looney, Kevon| LooneyKevon|\n| Barnes, Harrison| BarnesHarrison|\n+--------------------+-------------------+\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.463296861171E12,"submitTime":1.463296704463E12,"finishTime":1.463296862591E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"44adade2-a6fa-4ff9-9eda-b76ee2c74787"},{"version":"CommandV1","origId":123603,"guid":"d6231a41-b863-496f-a9a1-0ac27231e61c","subtype":"command","commandType":"auto","position":11.0,"command":"#Print edges\ng.edges.show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+-----------+------------+\n| src| dst|\n+-----------+------------+\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n|RushBrandon|CurryStephen|\n+-----------+------------+\nonly showing top 20 rows\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.463296862595E12,"submitTime":1.463296705232E12,"finishTime":1.463296862642E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"2920d685-279e-4228-a967-e15f5790820e"},{"version":"CommandV1","origId":123604,"guid":"d3640249-36a3-4129-9967-deef8bc883a9","subtype":"command","commandType":"auto","position":12.0,"command":"# Print inDegree\ng.inDegrees.sort('inDegree', ascending=False).show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+-------------------+--------+\n| id|inDegree|\n+-------------------+--------+\n| CurryStephen| 5353|\n| GreenDraymond| 4188|\n| ThompsonKlay| 3055|\n| LivingstonShaun| 2563|\n| IguodalaAndre| 1963|\n| BarnesHarrison| 1834|\n| BogutAndrew| 1337|\n| BarbosaLeandro| 1282|\n| SpeightsMarreese| 1162|\n| ClarkIan| 880|\n| RushBrandon| 866|\n| EzeliFestus| 602|\n|McAdooJames Michael| 291|\n| VarejaoAnderson| 199|\n| LooneyKevon| 22|\n+-------------------+--------+\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.463296863159E12,"submitTime":1.463296706453E12,"finishTime":1.463296866498E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"7efd5f8c-65c9-4237-872f-2c682192c0cf"},{"version":"CommandV1","origId":123605,"guid":"921943cf-85cd-45fd-841b-8c8b21c0a628","subtype":"command","commandType":"auto","position":13.0,"command":"# Print outDegrees\ng.outDegrees.sort('outDegree', ascending=False).show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+-------------------+---------+\n| id|outDegree|\n+-------------------+---------+\n| GreenDraymond| 5118|\n| CurryStephen| 4395|\n| LivingstonShaun| 2519|\n| BogutAndrew| 2086|\n| IguodalaAndre| 2065|\n| ThompsonKlay| 1973|\n| BarnesHarrison| 1961|\n| SpeightsMarreese| 1111|\n| BarbosaLeandro| 1061|\n| RushBrandon| 995|\n| EzeliFestus| 837|\n| ClarkIan| 777|\n|McAdooJames Michael| 393|\n| VarejaoAnderson| 270|\n| LooneyKevon| 36|\n+-------------------+---------+\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.463296866502E12,"submitTime":1.463296708374E12,"finishTime":1.463296867392E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"5466816b-c5f2-48f1-8633-bd3d60e0b0b6"},{"version":"CommandV1","origId":123606,"guid":"a94d768b-9c9a-4504-82ad-2493c2f0708d","subtype":"command","commandType":"auto","position":14.0,"command":"# Print degree\ng.degrees.sort('degree', ascending=False).show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+-------------------+------+\n| id|degree|\n+-------------------+------+\n| CurryStephen| 9295|\n| GreenDraymond| 8910|\n| ThompsonKlay| 4796|\n| LivingstonShaun| 4784|\n| IguodalaAndre| 3822|\n| BarnesHarrison| 3555|\n| BogutAndrew| 3290|\n| BarbosaLeandro| 2238|\n| SpeightsMarreese| 2166|\n| RushBrandon| 1813|\n| ClarkIan| 1644|\n| EzeliFestus| 1348|\n|McAdooJames Michael| 678|\n| VarejaoAnderson| 457|\n| LooneyKevon| 58|\n+-------------------+------+\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.460071021931E12,"submitTime":1.460070997059E12,"finishTime":1.460071022808E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"istoica@databricks.com","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"0970b7af-8e52-4f93-80ab-9ff92e03f524"},{"version":"CommandV1","origId":123607,"guid":"58358de3-3ca2-474b-9be6-4e5980de37b1","subtype":"command","commandType":"auto","position":14.25,"command":"pd.merge(left = g.outDegrees, right = g.inDegrees, on = 'id')\n","commandVersion":0,"state":"error","results":null,"errorSummary":"<span class=\"ansired\">TypeError</span>: object of type 'DataFrame' has no len()","error":"<div class=\"ansiout\"><span class=\"ansired\">---------------------------------------------------------------------------</span>\n<span class=\"ansired\">TypeError</span> Traceback (most recent call last)\n<span class=\"ansigreen\"><ipython-input-10-10f42a1ec8fc></span> in <span class=\"ansicyan\"><module></span><span class=\"ansiblue\">()</span>\n<span class=\"ansigreen\">----> 1</span><span class=\"ansiyellow\"> </span>pd<span class=\"ansiyellow\">.</span>merge<span class=\"ansiyellow\">(</span>left <span class=\"ansiyellow\">=</span> g<span class=\"ansiyellow\">.</span>outDegrees<span class=\"ansiyellow\">,</span> right <span class=\"ansiyellow\">=</span> g<span class=\"ansiyellow\">.</span>inDegrees<span class=\"ansiyellow\">,</span> on <span class=\"ansiyellow\">=</span> <span class=\"ansiblue\">'id'</span><span class=\"ansiyellow\">)</span><span class=\"ansiyellow\"></span>\n\n<span class=\"ansigreen\">/databricks/python/local/lib/python2.7/site-packages/pandas/tools/merge.pyc</span> in <span class=\"ansicyan\">merge</span><span class=\"ansiblue\">(left, right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy)</span>\n<span class=\"ansigreen\"> 36</span> right_on<span class=\"ansiyellow\">=</span>right_on<span class=\"ansiyellow\">,</span> left_index<span class=\"ansiyellow\">=</span>left_index<span class=\"ansiyellow\">,</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 37</span> right_index<span class=\"ansiyellow\">=</span>right_index<span class=\"ansiyellow\">,</span> sort<span class=\"ansiyellow\">=</span>sort<span class=\"ansiyellow\">,</span> suffixes<span class=\"ansiyellow\">=</span>suffixes<span class=\"ansiyellow\">,</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\">---> 38</span><span class=\"ansiyellow\"> copy=copy)\n</span><span class=\"ansigreen\"> 39</span> <span class=\"ansigreen\">return</span> op<span class=\"ansiyellow\">.</span>get_result<span class=\"ansiyellow\">(</span><span class=\"ansiyellow\">)</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 40</span> <span class=\"ansigreen\">if</span> __debug__<span class=\"ansiyellow\">:</span><span class=\"ansiyellow\"></span>\n\n<span class=\"ansigreen\">/databricks/python/local/lib/python2.7/site-packages/pandas/tools/merge.pyc</span> in <span class=\"ansicyan\">__init__</span><span class=\"ansiblue\">(self, left, right, how, on, left_on, right_on, axis, left_index, right_index, sort, suffixes, copy)</span>\n<span class=\"ansigreen\"> 180</span> (self.left_join_keys,\n<span class=\"ansigreen\"> 181</span> self<span class=\"ansiyellow\">.</span>right_join_keys<span class=\"ansiyellow\">,</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\">--> 182</span><span class=\"ansiyellow\"> self.join_names) = self._get_merge_keys()\n</span><span class=\"ansigreen\"> 183</span> <span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 184</span> <span class=\"ansigreen\">def</span> get_result<span class=\"ansiyellow\">(</span>self<span class=\"ansiyellow\">)</span><span class=\"ansiyellow\">:</span><span class=\"ansiyellow\"></span>\n\n<span class=\"ansigreen\">/databricks/python/local/lib/python2.7/site-packages/pandas/tools/merge.pyc</span> in <span class=\"ansicyan\">_get_merge_keys</span><span class=\"ansiblue\">(self)</span>\n<span class=\"ansigreen\"> 340</span> <span class=\"ansigreen\">if</span> lk <span class=\"ansiyellow\">==</span> rk<span class=\"ansiyellow\">:</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 341</span> <span class=\"ansired\"># avoid key upcast in corner case (length-0)</span><span class=\"ansiyellow\"></span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\">--> 342</span><span class=\"ansiyellow\"> </span><span class=\"ansigreen\">if</span> len<span class=\"ansiyellow\">(</span>left<span class=\"ansiyellow\">)</span> <span class=\"ansiyellow\">></span> <span class=\"ansicyan\">0</span><span class=\"ansiyellow\">:</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 343</span> right_drop<span class=\"ansiyellow\">.</span>append<span class=\"ansiyellow\">(</span>rk<span class=\"ansiyellow\">)</span><span class=\"ansiyellow\"></span>\n<span class=\"ansigreen\"> 344</span> <span class=\"ansigreen\">else</span><span class=\"ansiyellow\">:</span><span class=\"ansiyellow\"></span>\n\n<span class=\"ansired\">TypeError</span>: object of type 'DataFrame' has no len()\n</div>","startTime":1.464493704565E12,"submitTime":1.464493704565E12,"finishTime":1.464493704937E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"0e1d9250-d62b-4edc-bd3c-2b5b71b7bcb3"},{"version":"CommandV1","origId":123608,"guid":"b6f99ede-3fbc-4010-b5ff-6be798178c1a","subtype":"command","commandType":"auto","position":14.5,"command":"# %fs rm -r /FileStore/groups","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.463298323423E12,"submitTime":1.46329816664E12,"finishTime":1.463298323504E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"bb0d2d07-e10c-46d8-a4aa-6a83136a8e82"},{"version":"CommandV1","origId":123609,"guid":"30b89521-5a11-4721-b5f2-b29bba3d5077","subtype":"command","commandType":"auto","position":15.0,"command":"# Print labelPropagation\nlp = g.labelPropagation(maxIter=5)\nlp.show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+--------------------+-------------------+-----+\n| name| id|label|\n+--------------------+-------------------+-----+\n| Rush, Brandon| RushBrandon| 7|\n| Thompson, Klay| ThompsonKlay| 3|\n| Barbosa, Leandro| BarbosaLeandro| 3|\n| Green, Draymond| GreenDraymond| 7|\n| Speights, Marreese| SpeightsMarreese| 7|\n| Bogut, Andrew| BogutAndrew| 7|\n|McAdoo, James Mic...|McAdooJames Michael| 7|\n| Curry, Stephen| CurryStephen| 3|\n| Iguodala, Andre| IguodalaAndre| 7|\n| Varejao, Anderson| VarejaoAnderson| 7|\n| Clark, Ian| ClarkIan| 3|\n| Ezeli, Festus| EzeliFestus| 7|\n| Livingston, Shaun| LivingstonShaun| 3|\n| Looney, Kevon| LooneyKevon| 7|\n| Barnes, Harrison| BarnesHarrison| 7|\n+--------------------+-------------------+-----+\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493906731E12,"submitTime":1.464493717019E12,"finishTime":1.464493926084E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"d97eda61-dced-44a9-bde8-a6c879d4bfc2"},{"version":"CommandV1","origId":123610,"guid":"de02d7ef-aad6-4547-9cc4-cd7733239983","subtype":"command","commandType":"auto","position":16.0,"command":"#Print pageRank\npr = g.pageRank(resetProbability = 0.15, tol = 0.01).vertices.sort(\n 'pagerank', ascending = False)\npr.show()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">+--------------------+-------------------+-------------------+\n| name| id| pagerank|\n+--------------------+-------------------+-------------------+\n| Curry, Stephen| CurryStephen| 2.2128278308981484|\n| Green, Draymond| GreenDraymond| 2.031479816995467|\n| Thompson, Klay| ThompsonKlay| 1.3799568795278414|\n| Livingston, Shaun| LivingstonShaun| 1.3158449275310882|\n| Iguodala, Andre| IguodalaAndre| 1.0168010875321503|\n| Barnes, Harrison| BarnesHarrison| 0.9588948630922749|\n| Barbosa, Leandro| BarbosaLeandro| 0.7432222071919509|\n| Bogut, Andrew| BogutAndrew| 0.7428237450096932|\n| Speights, Marreese| SpeightsMarreese| 0.7019461885731915|\n| Clark, Ian| ClarkIan| 0.5887816031474474|\n| Rush, Brandon| RushBrandon| 0.5617976071109924|\n| Ezeli, Festus| EzeliFestus|0.42197193112798775|\n|McAdoo, James Mic...|McAdooJames Michael|0.29586452239292893|\n| Varejao, Anderson| VarejaoAnderson| 0.24508212754032|\n| Looney, Kevon| LooneyKevon| 0.161784194421651|\n+--------------------+-------------------+-------------------+\n\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493926094E12,"submitTime":1.464493723991E12,"finishTime":1.464493947387E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"ab64572d-9b69-4076-9145-db9badaeff75"},{"version":"CommandV1","origId":123611,"guid":"0ec736e5-46b2-4dfb-a575-bdd0b80841dd","subtype":"command","commandType":"auto","position":17.5,"command":"# Create a network\npasses = sqlContext.createDataFrame(passes)\nnetwork = passes.join(lp, passes.PLAYER == lp.name, \"inner\")\nnetwork = network.join(pr,network.PLAYER == pr.name, \"inner\")\nnetwork = network[['PLAYER','PASS_TO','label','PASS','pagerank']]\nnetwork.collect()","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"><span class=\"ansired\">Out[</span><span class=\"ansired\">13</span><span class=\"ansired\">]: </span>\n[Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Curry, Stephen', label=7, PASS=200, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Green, Draymond', label=7, PASS=185, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Livingston, Shaun', label=7, PASS=112, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Clark, Ian', label=7, PASS=101, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Thompson, Klay', label=7, PASS=100, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Speights, Marreese', label=7, PASS=74, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Barnes, Harrison', label=7, PASS=48, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Barbosa, Leandro', label=7, PASS=47, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Iguodala, Andre', label=7, PASS=42, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Bogut, Andrew', label=7, PASS=38, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'McAdoo, James Michael', label=7, PASS=16, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Ezeli, Festus', label=7, PASS=15, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Varejao, Anderson', label=7, PASS=14, pagerank=0.5617976071109924),\n Row(PLAYER=u'Rush, Brandon', PASS_TO=u'Looney, Kevon', label=7, PASS=3, pagerank=0.5617976071109924),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Curry, Stephen', label=7, PASS=67, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Livingston, Shaun', label=7, PASS=49, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Green, Draymond', label=7, PASS=35, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Barbosa, Leandro', label=7, PASS=27, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Thompson, Klay', label=7, PASS=23, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Barnes, Harrison', label=7, PASS=21, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Rush, Brandon', label=7, PASS=16, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Iguodala, Andre', label=7, PASS=15, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Clark, Ian', label=7, PASS=14, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'McAdoo, James Michael', label=7, PASS=1, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Looney, Kevon', label=7, PASS=1, pagerank=0.24508212754032),\n Row(PLAYER=u'Varejao, Anderson', PASS_TO=u'Speights, Marreese', label=7, PASS=1, pagerank=0.24508212754032),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Curry, Stephen', label=7, PASS=2238, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Thompson, Klay', label=7, PASS=868, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Livingston, Shaun', label=7, PASS=421, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Iguodala, Andre', label=7, PASS=383, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Barnes, Harrison', label=7, PASS=323, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Bogut, Andrew', label=7, PASS=236, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Rush, Brandon', label=7, PASS=175, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Barbosa, Leandro', label=7, PASS=137, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Clark, Ian', label=7, PASS=110, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Ezeli, Festus', label=7, PASS=89, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Speights, Marreese', label=7, PASS=86, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'Varejao, Anderson', label=7, PASS=25, pagerank=2.031479816995467),\n Row(PLAYER=u'Green, Draymond', PASS_TO=u'McAdoo, James Michael', label=7, PASS=27, pagerank=2.031479816995467),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Clark, Ian', label=3, PASS=29, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'McAdoo, James Michael', label=3, PASS=26, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Looney, Kevon', label=3, PASS=3, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Green, Draymond', label=3, PASS=1536, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Thompson, Klay', label=3, PASS=845, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Bogut, Andrew', label=3, PASS=521, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Barnes, Harrison', label=3, PASS=414, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Iguodala, Andre', label=3, PASS=327, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Livingston, Shaun', label=3, PASS=159, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Rush, Brandon', label=3, PASS=149, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Ezeli, Festus', label=3, PASS=137, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Barbosa, Leandro', label=3, PASS=117, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Speights, Marreese', label=3, PASS=87, pagerank=2.2128278308981484),\n Row(PLAYER=u'Curry, Stephen', PASS_TO=u'Varejao, Anderson', label=3, PASS=45, pagerank=2.2128278308981484),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Green, Draymond', label=3, PASS=613, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Curry, Stephen', label=3, PASS=339, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Bogut, Andrew', label=3, PASS=225, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Barnes, Harrison', label=3, PASS=169, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Livingston, Shaun', label=3, PASS=165, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Iguodala, Andre', label=3, PASS=120, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Speights, Marreese', label=3, PASS=77, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Rush, Brandon', label=3, PASS=59, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Ezeli, Festus', label=3, PASS=59, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Clark, Ian', label=3, PASS=54, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'McAdoo, James Michael', label=3, PASS=35, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Barbosa, Leandro', label=3, PASS=34, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Varejao, Anderson', label=3, PASS=23, pagerank=1.3799568795278414),\n Row(PLAYER=u'Thompson, Klay', PASS_TO=u'Looney, Kevon', label=3, PASS=1, pagerank=1.3799568795278414),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Curry, Stephen', label=7, PASS=486, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Livingston, Shaun', label=7, PASS=369, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Green, Draymond', label=7, PASS=274, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Thompson, Klay', label=7, PASS=222, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Iguodala, Andre', label=7, PASS=163, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Barbosa, Leandro', label=7, PASS=112, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Clark, Ian', label=7, PASS=83, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Bogut, Andrew', label=7, PASS=83, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Speights, Marreese', label=7, PASS=76, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Rush, Brandon', label=7, PASS=50, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Ezeli, Festus', label=7, PASS=24, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Varejao, Anderson', label=7, PASS=15, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'McAdoo, James Michael', label=7, PASS=3, pagerank=0.9588948630922749),\n Row(PLAYER=u'Barnes, Harrison', PASS_TO=u'Looney, Kevon', label=7, PASS=1, pagerank=0.9588948630922749),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Speights, Marreese', label=3, PASS=124, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Green, Draymond', label=3, PASS=87, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Livingston, Shaun', label=3, PASS=83, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Thompson, Klay', label=3, PASS=81, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Rush, Brandon', label=3, PASS=76, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'McAdoo, James Michael', label=3, PASS=66, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Iguodala, Andre', label=3, PASS=61, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Barnes, Harrison', label=3, PASS=61, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Barbosa, Leandro', label=3, PASS=56, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Ezeli, Festus', label=3, PASS=26, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Curry, Stephen', label=3, PASS=25, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Bogut, Andrew', label=3, PASS=16, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Varejao, Anderson', label=3, PASS=11, pagerank=0.5887816031474474),\n Row(PLAYER=u'Clark, Ian', PASS_TO=u'Looney, Kevon', label=3, PASS=4, pagerank=0.5887816031474474),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Green, Draymond', label=3, PASS=358, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Barnes, Harrison', label=3, PASS=314, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Barbosa, Leandro', label=3, PASS=312, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Iguodala, Andre', label=3, PASS=311, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Speights, Marreese', label=3, PASS=309, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Thompson, Klay', label=3, PASS=249, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Curry, Stephen', label=3, PASS=220, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Clark, Ian', label=3, PASS=97, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Bogut, Andrew', label=3, PASS=97, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Ezeli, Festus', label=3, PASS=95, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Rush, Brandon', label=3, PASS=71, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'McAdoo, James Michael', label=3, PASS=57, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Varejao, Anderson', label=3, PASS=28, pagerank=1.3158449275310882),\n Row(PLAYER=u'Livingston, Shaun', PASS_TO=u'Looney, Kevon', label=3, PASS=1, pagerank=1.3158449275310882),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Curry, Stephen', label=7, PASS=401, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Green, Draymond', label=7, PASS=339, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Livingston, Shaun', label=7, PASS=311, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Barnes, Harrison', label=7, PASS=183, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Thompson, Klay', label=7, PASS=172, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Speights, Marreese', label=7, PASS=164, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Barbosa, Leandro', label=7, PASS=154, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Ezeli, Festus', label=7, PASS=99, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Bogut, Andrew', label=7, PASS=98, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Clark, Ian', label=7, PASS=59, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Rush, Brandon', label=7, PASS=44, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'McAdoo, James Michael', label=7, PASS=24, pagerank=1.0168010875321503),\n Row(PLAYER=u'Iguodala, Andre', PASS_TO=u'Varejao, Anderson', label=7, PASS=17, pagerank=1.0168010875321503),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Livingston, Shaun', label=7, PASS=307, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Iguodala, Andre', label=7, PASS=151, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Barbosa, Leandro', label=7, PASS=138, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Clark, Ian', label=7, PASS=109, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Curry, Stephen', label=7, PASS=99, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Green, Draymond', label=7, PASS=83, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Thompson, Klay', label=7, PASS=74, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Rush, Brandon', label=7, PASS=66, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Barnes, Harrison', label=7, PASS=62, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'McAdoo, James Michael', label=7, PASS=12, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Ezeli, Festus', label=7, PASS=8, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Varejao, Anderson', label=7, PASS=1, pagerank=0.7019461885731915),\n Row(PLAYER=u'Speights, Marreese', PASS_TO=u'Looney, Kevon', label=7, PASS=1, pagerank=0.7019461885731915),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Clark, Ian', label=7, PASS=86, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Livingston, Shaun', label=7, PASS=77, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Barbosa, Leandro', label=7, PASS=43, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Curry, Stephen', label=7, PASS=42, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Iguodala, Andre', label=7, PASS=41, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Green, Draymond', label=7, PASS=32, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Rush, Brandon', label=7, PASS=25, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Thompson, Klay', label=7, PASS=24, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Speights, Marreese', label=7, PASS=12, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Barnes, Harrison', label=7, PASS=6, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Ezeli, Festus', label=7, PASS=3, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Bogut, Andrew', label=7, PASS=1, pagerank=0.29586452239292893),\n Row(PLAYER=u'McAdoo, James Michael', PASS_TO=u'Varejao, Anderson', label=7, PASS=1, pagerank=0.29586452239292893),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Clark, Ian', label=7, PASS=11, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Rush, Brandon', label=7, PASS=7, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Barbosa, Leandro', label=7, PASS=7, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Livingston, Shaun', label=7, PASS=4, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Thompson, Klay', label=7, PASS=3, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Curry, Stephen', label=7, PASS=2, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Varejao, Anderson', label=7, PASS=1, pagerank=0.161784194421651),\n Row(PLAYER=u'Looney, Kevon', PASS_TO=u'Barnes, Harrison', label=7, PASS=1, pagerank=0.161784194421651),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Livingston, Shaun', label=3, PASS=215, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Iguodala, Andre', label=3, PASS=147, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Speights, Marreese', label=3, PASS=145, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Green, Draymond', label=3, PASS=106, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Curry, Stephen', label=3, PASS=97, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Barnes, Harrison', label=3, PASS=93, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Clark, Ian', label=3, PASS=54, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Rush, Brandon', label=3, PASS=50, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Ezeli, Festus', label=3, PASS=47, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Thompson, Klay', label=3, PASS=39, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Bogut, Andrew', label=3, PASS=22, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'McAdoo, James Michael', label=3, PASS=21, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Varejao, Anderson', label=3, PASS=18, pagerank=0.7432222071919509),\n Row(PLAYER=u'Barbosa, Leandro', PASS_TO=u'Looney, Kevon', label=3, PASS=7, pagerank=0.7432222071919509),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Curry, Stephen', label=7, PASS=892, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Green, Draymond', label=7, PASS=438, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Thompson, Klay', label=7, PASS=303, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Livingston, Shaun', label=7, PASS=120, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Barnes, Harrison', label=7, PASS=112, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Iguodala, Andre', label=7, PASS=106, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Rush, Brandon', label=7, PASS=57, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Clark, Ian', label=7, PASS=29, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Barbosa, Leandro', label=7, PASS=28, pagerank=0.7428237450096932),\n Row(PLAYER=u'Bogut, Andrew', PASS_TO=u'Speights, Marreese', label=7, PASS=1, pagerank=0.7428237450096932),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Curry, Stephen', label=7, PASS=245, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Livingston, Shaun', label=7, PASS=171, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Green, Draymond', label=7, PASS=102, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Iguodala, Andre', label=7, PASS=96, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Barbosa, Leandro', label=7, PASS=70, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Thompson, Klay', label=7, PASS=52, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Clark, Ian', label=7, PASS=44, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Barnes, Harrison', label=7, PASS=27, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Rush, Brandon', label=7, PASS=21, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'Speights, Marreese', label=7, PASS=6, pagerank=0.42197193112798775),\n Row(PLAYER=u'Ezeli, Festus', PASS_TO=u'McAdoo, James Michael', label=7, PASS=3, pagerank=0.42197193112798775)]\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493947398E12,"submitTime":1.464493727724E12,"finishTime":1.464493954218E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"e0305384-9cb7-4377-bf50-c955ff3a36cc"},{"version":"CommandV1","origId":123612,"guid":"5f664640-c204-47bc-ad76-eae2f1df20f7","subtype":"command","commandType":"auto","position":17.75,"command":"# Make network available as a SQL table.\nnetwork.registerTempTable(\"network\")","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.46449395423E12,"submitTime":1.464493738599E12,"finishTime":1.464493954265E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"ea303518-4eb8-4f69-b33d-9e902baf48ce"},{"version":"CommandV1","origId":123613,"guid":"f3e4307a-6680-4875-baf9-9f2488a2207d","subtype":"command","commandType":"auto","position":18.125,"command":"%sql select * from network","commandVersion":0,"state":"finished","results":{"type":"table","data":[["Rush, Brandon","Curry, Stephen",7.0,200.0,0.5617976071109924],["Rush, Brandon","Green, Draymond",7.0,185.0,0.5617976071109924],["Rush, Brandon","Livingston, Shaun",7.0,112.0,0.5617976071109924],["Rush, Brandon","Clark, Ian",7.0,101.0,0.5617976071109924],["Rush, Brandon","Thompson, Klay",7.0,100.0,0.5617976071109924],["Rush, Brandon","Speights, Marreese",7.0,74.0,0.5617976071109924],["Rush, Brandon","Barnes, Harrison",7.0,48.0,0.5617976071109924],["Rush, Brandon","Barbosa, Leandro",7.0,47.0,0.5617976071109924],["Rush, Brandon","Iguodala, Andre",7.0,42.0,0.5617976071109924],["Rush, Brandon","Bogut, Andrew",7.0,38.0,0.5617976071109924],["Rush, Brandon","McAdoo, James Michael",7.0,16.0,0.5617976071109924],["Rush, Brandon","Ezeli, Festus",7.0,15.0,0.5617976071109924],["Rush, Brandon","Varejao, Anderson",7.0,14.0,0.5617976071109924],["Rush, Brandon","Looney, Kevon",7.0,3.0,0.5617976071109924],["Varejao, Anderson","Curry, Stephen",7.0,67.0,0.24508212754032],["Varejao, Anderson","Livingston, Shaun",7.0,49.0,0.24508212754032],["Varejao, Anderson","Green, Draymond",7.0,35.0,0.24508212754032],["Varejao, Anderson","Barbosa, Leandro",7.0,27.0,0.24508212754032],["Varejao, Anderson","Thompson, Klay",7.0,23.0,0.24508212754032],["Varejao, Anderson","Barnes, Harrison",7.0,21.0,0.24508212754032],["Varejao, Anderson","Rush, Brandon",7.0,16.0,0.24508212754032],["Varejao, Anderson","Iguodala, Andre",7.0,15.0,0.24508212754032],["Varejao, Anderson","Clark, Ian",7.0,14.0,0.24508212754032],["Varejao, Anderson","McAdoo, James Michael",7.0,1.0,0.24508212754032],["Varejao, Anderson","Looney, Kevon",7.0,1.0,0.24508212754032],["Varejao, Anderson","Speights, Marreese",7.0,1.0,0.24508212754032],["Green, Draymond","Curry, Stephen",7.0,2238.0,2.031479816995467],["Green, Draymond","Thompson, Klay",7.0,868.0,2.031479816995467],["Green, Draymond","Livingston, Shaun",7.0,421.0,2.031479816995467],["Green, Draymond","Iguodala, Andre",7.0,383.0,2.031479816995467],["Green, Draymond","Barnes, Harrison",7.0,323.0,2.031479816995467],["Green, Draymond","Bogut, Andrew",7.0,236.0,2.031479816995467],["Green, Draymond","Rush, Brandon",7.0,175.0,2.031479816995467],["Green, Draymond","Barbosa, Leandro",7.0,137.0,2.031479816995467],["Green, Draymond","Clark, Ian",7.0,110.0,2.031479816995467],["Green, Draymond","Ezeli, Festus",7.0,89.0,2.031479816995467],["Green, Draymond","Speights, Marreese",7.0,86.0,2.031479816995467],["Green, Draymond","Varejao, Anderson",7.0,25.0,2.031479816995467],["Green, Draymond","McAdoo, James Michael",7.0,27.0,2.031479816995467],["Curry, Stephen","Clark, Ian",3.0,29.0,2.2128278308981484],["Curry, Stephen","McAdoo, James Michael",3.0,26.0,2.2128278308981484],["Curry, Stephen","Looney, Kevon",3.0,3.0,2.2128278308981484],["Curry, Stephen","Green, Draymond",3.0,1536.0,2.2128278308981484],["Curry, Stephen","Thompson, Klay",3.0,845.0,2.2128278308981484],["Curry, Stephen","Bogut, Andrew",3.0,521.0,2.2128278308981484],["Curry, Stephen","Barnes, Harrison",3.0,414.0,2.2128278308981484],["Curry, Stephen","Iguodala, Andre",3.0,327.0,2.2128278308981484],["Curry, Stephen","Livingston, Shaun",3.0,159.0,2.2128278308981484],["Curry, Stephen","Rush, Brandon",3.0,149.0,2.2128278308981484],["Curry, Stephen","Ezeli, Festus",3.0,137.0,2.2128278308981484],["Curry, Stephen","Barbosa, Leandro",3.0,117.0,2.2128278308981484],["Curry, Stephen","Speights, Marreese",3.0,87.0,2.2128278308981484],["Curry, Stephen","Varejao, Anderson",3.0,45.0,2.2128278308981484],["Thompson, Klay","Green, Draymond",3.0,613.0,1.3799568795278414],["Thompson, Klay","Curry, Stephen",3.0,339.0,1.3799568795278414],["Thompson, Klay","Bogut, Andrew",3.0,225.0,1.3799568795278414],["Thompson, Klay","Barnes, Harrison",3.0,169.0,1.3799568795278414],["Thompson, Klay","Livingston, Shaun",3.0,165.0,1.3799568795278414],["Thompson, Klay","Iguodala, Andre",3.0,120.0,1.3799568795278414],["Thompson, Klay","Speights, Marreese",3.0,77.0,1.3799568795278414],["Thompson, Klay","Rush, Brandon",3.0,59.0,1.3799568795278414],["Thompson, Klay","Ezeli, Festus",3.0,59.0,1.3799568795278414],["Thompson, Klay","Clark, Ian",3.0,54.0,1.3799568795278414],["Thompson, Klay","McAdoo, James Michael",3.0,35.0,1.3799568795278414],["Thompson, Klay","Barbosa, Leandro",3.0,34.0,1.3799568795278414],["Thompson, Klay","Varejao, Anderson",3.0,23.0,1.3799568795278414],["Thompson, Klay","Looney, Kevon",3.0,1.0,1.3799568795278414],["Barnes, Harrison","Curry, Stephen",7.0,486.0,0.9588948630922749],["Barnes, Harrison","Livingston, Shaun",7.0,369.0,0.9588948630922749],["Barnes, Harrison","Green, Draymond",7.0,274.0,0.9588948630922749],["Barnes, Harrison","Thompson, Klay",7.0,222.0,0.9588948630922749],["Barnes, Harrison","Iguodala, Andre",7.0,163.0,0.9588948630922749],["Barnes, Harrison","Barbosa, Leandro",7.0,112.0,0.9588948630922749],["Barnes, Harrison","Clark, Ian",7.0,83.0,0.9588948630922749],["Barnes, Harrison","Bogut, Andrew",7.0,83.0,0.9588948630922749],["Barnes, Harrison","Speights, Marreese",7.0,76.0,0.9588948630922749],["Barnes, Harrison","Rush, Brandon",7.0,50.0,0.9588948630922749],["Barnes, Harrison","Ezeli, Festus",7.0,24.0,0.9588948630922749],["Barnes, Harrison","Varejao, Anderson",7.0,15.0,0.9588948630922749],["Barnes, Harrison","McAdoo, James Michael",7.0,3.0,0.9588948630922749],["Barnes, Harrison","Looney, Kevon",7.0,1.0,0.9588948630922749],["Clark, Ian","Speights, Marreese",3.0,124.0,0.5887816031474474],["Clark, Ian","Green, Draymond",3.0,87.0,0.5887816031474474],["Clark, Ian","Livingston, Shaun",3.0,83.0,0.5887816031474474],["Clark, Ian","Thompson, Klay",3.0,81.0,0.5887816031474474],["Clark, Ian","Rush, Brandon",3.0,76.0,0.5887816031474474],["Clark, Ian","McAdoo, James Michael",3.0,66.0,0.5887816031474474],["Clark, Ian","Iguodala, Andre",3.0,61.0,0.5887816031474474],["Clark, Ian","Barnes, Harrison",3.0,61.0,0.5887816031474474],["Clark, Ian","Barbosa, Leandro",3.0,56.0,0.5887816031474474],["Clark, Ian","Ezeli, Festus",3.0,26.0,0.5887816031474474],["Clark, Ian","Curry, Stephen",3.0,25.0,0.5887816031474474],["Clark, Ian","Bogut, Andrew",3.0,16.0,0.5887816031474474],["Clark, Ian","Varejao, Anderson",3.0,11.0,0.5887816031474474],["Clark, Ian","Looney, Kevon",3.0,4.0,0.5887816031474474],["Livingston, Shaun","Green, Draymond",3.0,358.0,1.3158449275310882],["Livingston, Shaun","Barnes, Harrison",3.0,314.0,1.3158449275310882],["Livingston, Shaun","Barbosa, Leandro",3.0,312.0,1.3158449275310882],["Livingston, Shaun","Iguodala, Andre",3.0,311.0,1.3158449275310882],["Livingston, Shaun","Speights, Marreese",3.0,309.0,1.3158449275310882],["Livingston, Shaun","Thompson, Klay",3.0,249.0,1.3158449275310882],["Livingston, Shaun","Curry, Stephen",3.0,220.0,1.3158449275310882],["Livingston, Shaun","Clark, Ian",3.0,97.0,1.3158449275310882],["Livingston, Shaun","Bogut, Andrew",3.0,97.0,1.3158449275310882],["Livingston, Shaun","Ezeli, Festus",3.0,95.0,1.3158449275310882],["Livingston, Shaun","Rush, Brandon",3.0,71.0,1.3158449275310882],["Livingston, Shaun","McAdoo, James Michael",3.0,57.0,1.3158449275310882],["Livingston, Shaun","Varejao, Anderson",3.0,28.0,1.3158449275310882],["Livingston, Shaun","Looney, Kevon",3.0,1.0,1.3158449275310882],["Iguodala, Andre","Curry, Stephen",7.0,401.0,1.0168010875321503],["Iguodala, Andre","Green, Draymond",7.0,339.0,1.0168010875321503],["Iguodala, Andre","Livingston, Shaun",7.0,311.0,1.0168010875321503],["Iguodala, Andre","Barnes, Harrison",7.0,183.0,1.0168010875321503],["Iguodala, Andre","Thompson, Klay",7.0,172.0,1.0168010875321503],["Iguodala, Andre","Speights, Marreese",7.0,164.0,1.0168010875321503],["Iguodala, Andre","Barbosa, Leandro",7.0,154.0,1.0168010875321503],["Iguodala, Andre","Ezeli, Festus",7.0,99.0,1.0168010875321503],["Iguodala, Andre","Bogut, Andrew",7.0,98.0,1.0168010875321503],["Iguodala, Andre","Clark, Ian",7.0,59.0,1.0168010875321503],["Iguodala, Andre","Rush, Brandon",7.0,44.0,1.0168010875321503],["Iguodala, Andre","McAdoo, James Michael",7.0,24.0,1.0168010875321503],["Iguodala, Andre","Varejao, Anderson",7.0,17.0,1.0168010875321503],["Speights, Marreese","Livingston, Shaun",7.0,307.0,0.7019461885731915],["Speights, Marreese","Iguodala, Andre",7.0,151.0,0.7019461885731915],["Speights, Marreese","Barbosa, Leandro",7.0,138.0,0.7019461885731915],["Speights, Marreese","Clark, Ian",7.0,109.0,0.7019461885731915],["Speights, Marreese","Curry, Stephen",7.0,99.0,0.7019461885731915],["Speights, Marreese","Green, Draymond",7.0,83.0,0.7019461885731915],["Speights, Marreese","Thompson, Klay",7.0,74.0,0.7019461885731915],["Speights, Marreese","Rush, Brandon",7.0,66.0,0.7019461885731915],["Speights, Marreese","Barnes, Harrison",7.0,62.0,0.7019461885731915],["Speights, Marreese","McAdoo, James Michael",7.0,12.0,0.7019461885731915],["Speights, Marreese","Ezeli, Festus",7.0,8.0,0.7019461885731915],["Speights, Marreese","Varejao, Anderson",7.0,1.0,0.7019461885731915],["Speights, Marreese","Looney, Kevon",7.0,1.0,0.7019461885731915],["McAdoo, James Michael","Iguodala, Andre",7.0,41.0,0.29586452239292893],["McAdoo, James Michael","Green, Draymond",7.0,32.0,0.29586452239292893],["McAdoo, James Michael","Rush, Brandon",7.0,25.0,0.29586452239292893],["McAdoo, James Michael","Thompson, Klay",7.0,24.0,0.29586452239292893],["McAdoo, James Michael","Speights, Marreese",7.0,12.0,0.29586452239292893],["McAdoo, James Michael","Barnes, Harrison",7.0,6.0,0.29586452239292893],["McAdoo, James Michael","Ezeli, Festus",7.0,3.0,0.29586452239292893],["McAdoo, James Michael","Bogut, Andrew",7.0,1.0,0.29586452239292893],["McAdoo, James Michael","Varejao, Anderson",7.0,1.0,0.29586452239292893],["McAdoo, James Michael","Clark, Ian",7.0,86.0,0.29586452239292893],["McAdoo, James Michael","Livingston, Shaun",7.0,77.0,0.29586452239292893],["McAdoo, James Michael","Barbosa, Leandro",7.0,43.0,0.29586452239292893],["McAdoo, James Michael","Curry, Stephen",7.0,42.0,0.29586452239292893],["Looney, Kevon","Clark, Ian",7.0,11.0,0.161784194421651],["Looney, Kevon","Rush, Brandon",7.0,7.0,0.161784194421651],["Looney, Kevon","Barbosa, Leandro",7.0,7.0,0.161784194421651],["Looney, Kevon","Livingston, Shaun",7.0,4.0,0.161784194421651],["Looney, Kevon","Thompson, Klay",7.0,3.0,0.161784194421651],["Looney, Kevon","Curry, Stephen",7.0,2.0,0.161784194421651],["Looney, Kevon","Varejao, Anderson",7.0,1.0,0.161784194421651],["Looney, Kevon","Barnes, Harrison",7.0,1.0,0.161784194421651],["Barbosa, Leandro","Livingston, Shaun",3.0,215.0,0.7432222071919509],["Barbosa, Leandro","Iguodala, Andre",3.0,147.0,0.7432222071919509],["Barbosa, Leandro","Speights, Marreese",3.0,145.0,0.7432222071919509],["Barbosa, Leandro","Green, Draymond",3.0,106.0,0.7432222071919509],["Barbosa, Leandro","Curry, Stephen",3.0,97.0,0.7432222071919509],["Barbosa, Leandro","Barnes, Harrison",3.0,93.0,0.7432222071919509],["Barbosa, Leandro","Clark, Ian",3.0,54.0,0.7432222071919509],["Barbosa, Leandro","Rush, Brandon",3.0,50.0,0.7432222071919509],["Barbosa, Leandro","Ezeli, Festus",3.0,47.0,0.7432222071919509],["Barbosa, Leandro","Thompson, Klay",3.0,39.0,0.7432222071919509],["Barbosa, Leandro","Bogut, Andrew",3.0,22.0,0.7432222071919509],["Barbosa, Leandro","McAdoo, James Michael",3.0,21.0,0.7432222071919509],["Barbosa, Leandro","Varejao, Anderson",3.0,18.0,0.7432222071919509],["Barbosa, Leandro","Looney, Kevon",3.0,7.0,0.7432222071919509],["Bogut, Andrew","Curry, Stephen",7.0,892.0,0.7428237450096932],["Bogut, Andrew","Green, Draymond",7.0,438.0,0.7428237450096932],["Bogut, Andrew","Thompson, Klay",7.0,303.0,0.7428237450096932],["Bogut, Andrew","Livingston, Shaun",7.0,120.0,0.7428237450096932],["Bogut, Andrew","Barnes, Harrison",7.0,112.0,0.7428237450096932],["Bogut, Andrew","Iguodala, Andre",7.0,106.0,0.7428237450096932],["Bogut, Andrew","Rush, Brandon",7.0,57.0,0.7428237450096932],["Bogut, Andrew","Clark, Ian",7.0,29.0,0.7428237450096932],["Bogut, Andrew","Barbosa, Leandro",7.0,28.0,0.7428237450096932],["Bogut, Andrew","Speights, Marreese",7.0,1.0,0.7428237450096932],["Ezeli, Festus","Curry, Stephen",7.0,245.0,0.42197193112798775],["Ezeli, Festus","Livingston, Shaun",7.0,171.0,0.42197193112798775],["Ezeli, Festus","Green, Draymond",7.0,102.0,0.42197193112798775],["Ezeli, Festus","Iguodala, Andre",7.0,96.0,0.42197193112798775],["Ezeli, Festus","Barbosa, Leandro",7.0,70.0,0.42197193112798775],["Ezeli, Festus","Thompson, Klay",7.0,52.0,0.42197193112798775],["Ezeli, Festus","Clark, Ian",7.0,44.0,0.42197193112798775],["Ezeli, Festus","Barnes, Harrison",7.0,27.0,0.42197193112798775],["Ezeli, Festus","Rush, Brandon",7.0,21.0,0.42197193112798775],["Ezeli, Festus","Speights, Marreese",7.0,6.0,0.42197193112798775],["Ezeli, Festus","McAdoo, James Michael",7.0,3.0,0.42197193112798775]],"arguments":{},"addedWidgets":{},"removedWidgets":[],"schema":[{"name":"PLAYER","type":"\"string\""},{"name":"PASS_TO","type":"\"string\""},{"name":"label","type":"\"long\""},{"name":"PASS","type":"\"long\""},{"name":"pagerank","type":"\"double\""}],"overflow":false,"aggData":[],"aggSchema":[],"aggOverflow":false,"aggSeriesLimitReached":false,"aggError":"","aggType":"","plotOptions":null,"isJsonSchema":true,"dbfsResultPath":null},"errorSummary":null,"error":null,"startTime":1.464494549795E12,"submitTime":1.464494360047E12,"finishTime":1.464494554771E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"dd1e2c30-22b7-45b9-bf58-cada6adadba7"},{"version":"CommandV1","origId":123614,"guid":"f9fbb16e-5e95-485b-9b93-8080250e7784","subtype":"command","commandType":"auto","position":18.5,"command":"%scala if (org.apache.spark.BuildInfo.sparkBranch < \"1.6\") sys.error(\"Attach this notebook to a cluster running Spark 1.6+\")\n","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\"></div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.463298524672E12,"submitTime":1.463298340043E12,"finishTime":1.463298526297E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"a3f573e0-5a01-438f-98a7-811e9bd46391"},{"version":"CommandV1","origId":123615,"guid":"32bad518-02a1-4107-a9f8-19f88d09021d","subtype":"command","commandType":"auto","position":23.0,"command":"%scala\npackage d3\n// We use a package object so that we can define top level classes like Edge that need to be used in other cells\n\nimport org.apache.spark.sql._\nimport com.databricks.backend.daemon.driver.EnhancedRDDFunctions.displayHTML\n\ncase class Edge(PLAYER: String, PASS_TO: String, PASS: Long, label: Long, pagerank: Double)\n\ncase class Node(name: String, label: Long, pagerank: Double)\ncase class Link(source: Int, target: Int, value: Long)\ncase class Graph(nodes: Seq[Node], links: Seq[Link])\n\nobject graphs {\nval sqlContext = SQLContext.getOrCreate(org.apache.spark.SparkContext.getOrCreate()) \nimport sqlContext.implicits._\n \ndef force(network: Dataset[Edge], height: Int = 100, width: Int = 960): Unit = {\n val data = network.collect()\n// val nodes = (data.map(_.PLAYER) ++ data.map(_.PASS_TO)).map(_.replaceAll(\"_\", \" \")).toSet.toSeq.map(Node)\n val nodes = data.map { t =>\n Node(t.PLAYER, t.label, t.pagerank)}.distinct\n val links = data.map { t =>\n Link(nodes.indexWhere(_.name == t.PLAYER), nodes.indexWhere(_.name == t.PASS_TO), t.PASS / 20 + 1)\n }\n // Link(nodes.indexWhere(_.name == t.PLAYER.replaceAll(\"_\", \" \")), nodes.indexWhere(_.name == t.PASS_TO.replaceAll(\"_\", \" \")), t.PASS / 20 + 1)\n showGraph(height, width, Seq(Graph(nodes, links)).toDF().toJSON.first())\n}\n\n/**\n * Displays a force directed graph using d3\n * input: {\"nodes\": [{\"name\": \"...\"}], \"links\": [{\"source\": 1, \"target\": 2, \"value\": 0}]}\n */\ndef showGraph(height: Int, width: Int, graph: String): Unit = {\n\ndisplayHTML(s\"\"\"\n<!DOCTYPE html>\n<html>\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n <title>Polish Books Themes - an Interactive Map</title>\n <meta charset=\"utf-8\">\n<style>\n\n.node_circle {\n stroke: #777;\n stroke-width: 1.3px;\n}\n\n.node_label {\n pointer-events: none;\n}\n\n.link {\n stroke: #777;\n stroke-opacity: .2;\n}\n\n.node_count {\n stroke: #777;\n stroke-width: 1.0px;\n fill: #999;\n}\n\ntext.legend {\n font-family: Verdana;\n font-size: 13px;\n fill: #000;\n}\n\n.node text {\n font-family: \"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif;\n font-size: 17px;\n font-weight: 200;\n}\n\n</style>\n</head>\n\n<body>\n<script src=\"//d3js.org/d3.v3.min.js\"><\/script>\n<script>\n\nvar graph = $graph;\n\nvar width = $width,\n height = $height;\n\nvar color = d3.scale.category10();\n\nvar force = d3.layout.force()\n .charge(-700)\n .linkDistance(350)\n .size([width, height]);\n\nvar svg = d3.select(\"body\").append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n \nforce\n .nodes(graph.nodes)\n .links(graph.links)\n .start();\n\nvar link = svg.selectAll(\".link\")\n .data(graph.links)\n .enter().append(\"line\")\n .attr(\"class\", \"link\")\n .style(\"stroke-width\", function(d) { return Math.sqrt(d.value); });\n\nvar node = svg.selectAll(\".node\")\n .data(graph.nodes)\n .enter().append(\"g\")\n .attr(\"class\", \"node\")\n .call(force.drag);\n\nnode.append(\"circle\")\n .attr(\"r\", function(d) { return d.pagerank*10+4 ;})\n .style(\"fill\", function(d) { return color(d.label);})\n .style(\"opacity\", 0.5)\n\nnode.append(\"text\")\n .attr(\"dx\", 10)\n .attr(\"dy\", \".35em\")\n .text(function(d) { return d.name });\n \n//Now we are giving the SVGs co-ordinates - the force layout is generating the co-ordinates which this code is using to update the attributes of the SVG elements\nforce.on(\"tick\", function () {\n link.attr(\"x1\", function (d) {\n return d.source.x;\n })\n .attr(\"y1\", function (d) {\n return d.source.y;\n })\n .attr(\"x2\", function (d) {\n return d.target.x;\n })\n .attr(\"y2\", function (d) {\n return d.target.y;\n });\n d3.selectAll(\"circle\").attr(\"cx\", function (d) {\n return d.x;\n })\n .attr(\"cy\", function (d) {\n return d.y;\n });\n d3.selectAll(\"text\").attr(\"x\", function (d) {\n return d.x;\n })\n .attr(\"y\", function (d) {\n return d.y;\n });\n});\n<\/script>\n</html>\n\"\"\")\n}\n \n def help() = {\ndisplayHTML(\"\"\"\n<p>\nProduces a force-directed graph given a collection of edges of the following form:</br>\n<tt><font color=\"#a71d5d\">case class</font> <font color=\"#795da3\">Edge</font>(<font color=\"#ed6a43\">PLAYER</font>: <font color=\"#a71d5d\">String</font>, <font color=\"#ed6a43\">PASS_TO</font>: <font color=\"#a71d5d\">String</font>, <font color=\"#ed6a43\">PASS</font>: <font color=\"#a71d5d\">Long</font>, <font color=\"#ed6a43\">label</font>: <font color=\"#a71d5d\">Double</font>, <font color=\"#ed6a43\">pagerank</font>: <font color=\"#a71d5d\">Double</font>)</tt>\n</p>\n<p>Usage:<br/>\n<tt>%scala</tt></br>\n<tt><font color=\"#a71d5d\">import</font> <font color=\"#ed6a43\">d3._</font></tt><br/>\n<tt><font color=\"#795da3\">graphs.force</font>(</br>\n <font color=\"#ed6a43\">height</font> = <font color=\"#795da3\">500</font>,<br/>\n <font color=\"#ed6a43\">width</font> = <font color=\"#795da3\">500</font>,<br/>\n <font color=\"#ed6a43\">clicks</font>: <font color=\"#795da3\">Dataset</font>[<font color=\"#795da3\">Edge</font>])</tt>\n</p>\"\"\")\n }\n}","commandVersion":0,"state":"finished","results":{"type":"html","data":"<div class=\"ansiout\">Warning: classes defined within packages cannot be redefined without a cluster restart.\nCompilation successful.\n</div>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"Command skipped","error":null,"startTime":1.464493954383E12,"submitTime":1.464493744094E12,"finishTime":1.464493956704E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"Create d3 (Click \"Show code\" from dropdown ->)","showCommandTitle":true,"hideCommandCode":true,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"1d14cf2d-ea4b-4b7f-b108-29769ef7bab9"},{"version":"CommandV1","origId":123616,"guid":"56f50f3e-fdb6-4ef7-a5a9-0512b6097bea","subtype":"command","commandType":"auto","position":24.0,"command":"%scala \nimport d3._\n// print the help for the graphing library\nd3.graphs.help()\n","commandVersion":0,"state":"finished","results":{"type":"htmlSandbox","data":"\n<p>\nProduces a force-directed graph given a collection of edges of the following form:</br>\n<tt><font color=\"#a71d5d\">case class</font> <font color=\"#795da3\">Edge</font>(<font color=\"#ed6a43\">PLAYER</font>: <font color=\"#a71d5d\">String</font>, <font color=\"#ed6a43\">PASS_TO</font>: <font color=\"#a71d5d\">String</font>, <font color=\"#ed6a43\">PASS</font>: <font color=\"#a71d5d\">Long</font>, <font color=\"#ed6a43\">label</font>: <font color=\"#a71d5d\">Double</font>, <font color=\"#ed6a43\">pagerank</font>: <font color=\"#a71d5d\">Double</font>)</tt>\n</p>\n<p>Usage:<br/>\n<tt>%scala</tt></br>\n<tt><font color=\"#a71d5d\">import</font> <font color=\"#ed6a43\">d3._</font></tt><br/>\n<tt><font color=\"#795da3\">graphs.force</font>(</br>\n <font color=\"#ed6a43\">height</font> = <font color=\"#795da3\">500</font>,<br/>\n <font color=\"#ed6a43\">width</font> = <font color=\"#795da3\">500</font>,<br/>\n <font color=\"#ed6a43\">clicks</font>: <font color=\"#795da3\">Dataset</font>[<font color=\"#795da3\">Edge</font>])</tt>\n</p>","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"<div class=\"ansiout\"><console>:32: error: not found: value d3\n import d3._\n ^\n<console>:36: error: not found: value d3\n d3.graphs.help()\n ^\n</div>","error":null,"startTime":1.463299668483E12,"submitTime":1.463299511635E12,"finishTime":1.463299668545E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"auto","height":"auto","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"d939e9e7-d8f0-4df1-bb08-7d8620fb5a4c"},{"version":"CommandV1","origId":123617,"guid":"ef8cd87e-9008-4d90-a7ea-978dd01b04ec","subtype":"command","commandType":"auto","position":25.0,"command":"%scala\nimport d3._\n\ngraphs.force(\n height = 800,\n width = 1000,\n network = sql(\"\"\"\n SELECT \n PLAYER,\n PASS_TO,\n PASS,\n label,\n pagerank\n FROM network\n \"\"\").as[Edge])","commandVersion":0,"state":"finished","results":{"type":"htmlSandbox","data":"\n<!DOCTYPE html>\n<html>\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n <title>Polish Books Themes - an Interactive Map</title>\n <meta charset=\"utf-8\">\n<style>\n\n.node_circle {\n stroke: #777;\n stroke-width: 1.3px;\n}\n\n.node_label {\n pointer-events: none;\n}\n\n.link {\n stroke: #777;\n stroke-opacity: .2;\n}\n\n.node_count {\n stroke: #777;\n stroke-width: 1.0px;\n fill: #999;\n}\n\ntext.legend {\n font-family: Verdana;\n font-size: 13px;\n fill: #000;\n}\n\n.node text {\n font-family: \"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif;\n font-size: 17px;\n font-weight: 200;\n}\n\n</style>\n</head>\n\n<body>\n<script src=\"//d3js.org/d3.v3.min.js\"><\/script>\n<script>\n\nvar graph = {\"nodes\":[{\"name\":\"Rush, Brandon\",\"label\":7,\"pagerank\":0.5617976071109924},{\"name\":\"Varejao, Anderson\",\"label\":7,\"pagerank\":0.24508212754032},{\"name\":\"Green, Draymond\",\"label\":7,\"pagerank\":2.031479816995467},{\"name\":\"Curry, Stephen\",\"label\":3,\"pagerank\":2.2128278308981484},{\"name\":\"Thompson, Klay\",\"label\":3,\"pagerank\":1.3799568795278414},{\"name\":\"Barnes, Harrison\",\"label\":7,\"pagerank\":0.9588948630922749},{\"name\":\"Clark, Ian\",\"label\":3,\"pagerank\":0.5887816031474474},{\"name\":\"Livingston, Shaun\",\"label\":3,\"pagerank\":1.3158449275310882},{\"name\":\"Iguodala, Andre\",\"label\":7,\"pagerank\":1.0168010875321503},{\"name\":\"Speights, Marreese\",\"label\":7,\"pagerank\":0.7019461885731915},{\"name\":\"McAdoo, James Michael\",\"label\":7,\"pagerank\":0.29586452239292893},{\"name\":\"Looney, Kevon\",\"label\":7,\"pagerank\":0.161784194421651},{\"name\":\"Barbosa, Leandro\",\"label\":3,\"pagerank\":0.7432222071919509},{\"name\":\"Bogut, Andrew\",\"label\":7,\"pagerank\":0.7428237450096932},{\"name\":\"Ezeli, Festus\",\"label\":7,\"pagerank\":0.42197193112798775}],\"links\":[{\"source\":0,\"target\":3,\"value\":11},{\"source\":0,\"target\":2,\"value\":10},{\"source\":0,\"target\":7,\"value\":6},{\"source\":0,\"target\":6,\"value\":6},{\"source\":0,\"target\":4,\"value\":6},{\"source\":0,\"target\":9,\"value\":4},{\"source\":0,\"target\":5,\"value\":3},{\"source\":0,\"target\":12,\"value\":3},{\"source\":0,\"target\":8,\"value\":3},{\"source\":0,\"target\":13,\"value\":2},{\"source\":0,\"target\":10,\"value\":1},{\"source\":0,\"target\":14,\"value\":1},{\"source\":0,\"target\":1,\"value\":1},{\"source\":0,\"target\":11,\"value\":1},{\"source\":1,\"target\":3,\"value\":4},{\"source\":1,\"target\":7,\"value\":3},{\"source\":1,\"target\":2,\"value\":2},{\"source\":1,\"target\":12,\"value\":2},{\"source\":1,\"target\":4,\"value\":2},{\"source\":1,\"target\":5,\"value\":2},{\"source\":1,\"target\":0,\"value\":1},{\"source\":1,\"target\":8,\"value\":1},{\"source\":1,\"target\":6,\"value\":1},{\"source\":1,\"target\":10,\"value\":1},{\"source\":1,\"target\":11,\"value\":1},{\"source\":1,\"target\":9,\"value\":1},{\"source\":2,\"target\":3,\"value\":112},{\"source\":2,\"target\":4,\"value\":44},{\"source\":2,\"target\":7,\"value\":22},{\"source\":2,\"target\":8,\"value\":20},{\"source\":2,\"target\":5,\"value\":17},{\"source\":2,\"target\":13,\"value\":12},{\"source\":2,\"target\":0,\"value\":9},{\"source\":2,\"target\":12,\"value\":7},{\"source\":2,\"target\":6,\"value\":6},{\"source\":2,\"target\":14,\"value\":5},{\"source\":2,\"target\":9,\"value\":5},{\"source\":2,\"target\":1,\"value\":2},{\"source\":2,\"target\":10,\"value\":2},{\"source\":3,\"target\":2,\"value\":77},{\"source\":3,\"target\":4,\"value\":43},{\"source\":3,\"target\":13,\"value\":27},{\"source\":3,\"target\":5,\"value\":21},{\"source\":3,\"target\":8,\"value\":17},{\"source\":3,\"target\":7,\"value\":8},{\"source\":3,\"target\":0,\"value\":8},{\"source\":3,\"target\":14,\"value\":7},{\"source\":3,\"target\":12,\"value\":6},{\"source\":3,\"target\":9,\"value\":5},{\"source\":3,\"target\":1,\"value\":3},{\"source\":3,\"target\":6,\"value\":2},{\"source\":3,\"target\":10,\"value\":2},{\"source\":3,\"target\":11,\"value\":1},{\"source\":4,\"target\":0,\"value\":3},{\"source\":4,\"target\":14,\"value\":3},{\"source\":4,\"target\":6,\"value\":3},{\"source\":4,\"target\":10,\"value\":2},{\"source\":4,\"target\":12,\"value\":2},{\"source\":4,\"target\":1,\"value\":2},{\"source\":4,\"target\":11,\"value\":1},{\"source\":4,\"target\":2,\"value\":31},{\"source\":4,\"target\":3,\"value\":17},{\"source\":4,\"target\":13,\"value\":12},{\"source\":4,\"target\":5,\"value\":9},{\"source\":4,\"target\":7,\"value\":9},{\"source\":4,\"target\":8,\"value\":7},{\"source\":4,\"target\":9,\"value\":4},{\"source\":5,\"target\":3,\"value\":25},{\"source\":5,\"target\":7,\"value\":19},{\"source\":5,\"target\":2,\"value\":14},{\"source\":5,\"target\":4,\"value\":12},{\"source\":5,\"target\":8,\"value\":9},{\"source\":5,\"target\":12,\"value\":6},{\"source\":5,\"target\":6,\"value\":5},{\"source\":5,\"target\":13,\"value\":5},{\"source\":5,\"target\":9,\"value\":4},{\"source\":5,\"target\":0,\"value\":3},{\"source\":5,\"target\":14,\"value\":2},{\"source\":5,\"target\":1,\"value\":1},{\"source\":5,\"target\":10,\"value\":1},{\"source\":5,\"target\":11,\"value\":1},{\"source\":6,\"target\":9,\"value\":7},{\"source\":6,\"target\":2,\"value\":5},{\"source\":6,\"target\":7,\"value\":5},{\"source\":6,\"target\":4,\"value\":5},{\"source\":6,\"target\":0,\"value\":4},{\"source\":6,\"target\":10,\"value\":4},{\"source\":6,\"target\":8,\"value\":4},{\"source\":6,\"target\":5,\"value\":4},{\"source\":6,\"target\":12,\"value\":3},{\"source\":6,\"target\":14,\"value\":2},{\"source\":6,\"target\":3,\"value\":2},{\"source\":6,\"target\":13,\"value\":1},{\"source\":6,\"target\":1,\"value\":1},{\"source\":6,\"target\":11,\"value\":1},{\"source\":7,\"target\":2,\"value\":18},{\"source\":7,\"target\":5,\"value\":16},{\"source\":7,\"target\":12,\"value\":16},{\"source\":7,\"target\":8,\"value\":16},{\"source\":7,\"target\":9,\"value\":16},{\"source\":7,\"target\":4,\"value\":13},{\"source\":7,\"target\":3,\"value\":12},{\"source\":7,\"target\":6,\"value\":5},{\"source\":7,\"target\":13,\"value\":5},{\"source\":7,\"target\":14,\"value\":5},{\"source\":7,\"target\":0,\"value\":4},{\"source\":7,\"target\":10,\"value\":3},{\"source\":7,\"target\":1,\"value\":2},{\"source\":7,\"target\":11,\"value\":1},{\"source\":8,\"target\":3,\"value\":21},{\"source\":8,\"target\":2,\"value\":17},{\"source\":8,\"target\":7,\"value\":16},{\"source\":8,\"target\":5,\"value\":10},{\"source\":8,\"target\":4,\"value\":9},{\"source\":8,\"target\":9,\"value\":9},{\"source\":8,\"target\":12,\"value\":8},{\"source\":8,\"target\":14,\"value\":5},{\"source\":8,\"target\":13,\"value\":5},{\"source\":8,\"target\":6,\"value\":3},{\"source\":8,\"target\":0,\"value\":3},{\"source\":8,\"target\":10,\"value\":2},{\"source\":8,\"target\":1,\"value\":1},{\"source\":9,\"target\":7,\"value\":16},{\"source\":9,\"target\":8,\"value\":8},{\"source\":9,\"target\":12,\"value\":7},{\"source\":9,\"target\":6,\"value\":6},{\"source\":9,\"target\":3,\"value\":5},{\"source\":9,\"target\":2,\"value\":5},{\"source\":9,\"target\":4,\"value\":4},{\"source\":9,\"target\":0,\"value\":4},{\"source\":9,\"target\":5,\"value\":4},{\"source\":9,\"target\":10,\"value\":1},{\"source\":9,\"target\":14,\"value\":1},{\"source\":9,\"target\":1,\"value\":1},{\"source\":9,\"target\":11,\"value\":1},{\"source\":10,\"target\":6,\"value\":5},{\"source\":10,\"target\":7,\"value\":4},{\"source\":10,\"target\":12,\"value\":3},{\"source\":10,\"target\":3,\"value\":3},{\"source\":10,\"target\":8,\"value\":3},{\"source\":10,\"target\":2,\"value\":2},{\"source\":10,\"target\":0,\"value\":2},{\"source\":10,\"target\":4,\"value\":2},{\"source\":10,\"target\":9,\"value\":1},{\"source\":10,\"target\":5,\"value\":1},{\"source\":10,\"target\":14,\"value\":1},{\"source\":10,\"target\":13,\"value\":1},{\"source\":10,\"target\":1,\"value\":1},{\"source\":11,\"target\":6,\"value\":1},{\"source\":11,\"target\":0,\"value\":1},{\"source\":11,\"target\":12,\"value\":1},{\"source\":11,\"target\":7,\"value\":1},{\"source\":11,\"target\":4,\"value\":1},{\"source\":11,\"target\":3,\"value\":1},{\"source\":11,\"target\":1,\"value\":1},{\"source\":11,\"target\":5,\"value\":1},{\"source\":12,\"target\":7,\"value\":11},{\"source\":12,\"target\":8,\"value\":8},{\"source\":12,\"target\":9,\"value\":8},{\"source\":12,\"target\":2,\"value\":6},{\"source\":12,\"target\":3,\"value\":5},{\"source\":12,\"target\":5,\"value\":5},{\"source\":12,\"target\":6,\"value\":3},{\"source\":12,\"target\":0,\"value\":3},{\"source\":12,\"target\":14,\"value\":3},{\"source\":12,\"target\":4,\"value\":2},{\"source\":12,\"target\":13,\"value\":2},{\"source\":12,\"target\":10,\"value\":2},{\"source\":12,\"target\":1,\"value\":1},{\"source\":12,\"target\":11,\"value\":1},{\"source\":13,\"target\":3,\"value\":45},{\"source\":13,\"target\":2,\"value\":22},{\"source\":13,\"target\":4,\"value\":16},{\"source\":13,\"target\":7,\"value\":7},{\"source\":13,\"target\":5,\"value\":6},{\"source\":13,\"target\":8,\"value\":6},{\"source\":13,\"target\":0,\"value\":3},{\"source\":13,\"target\":6,\"value\":2},{\"source\":13,\"target\":12,\"value\":2},{\"source\":13,\"target\":9,\"value\":1},{\"source\":14,\"target\":3,\"value\":13},{\"source\":14,\"target\":7,\"value\":9},{\"source\":14,\"target\":2,\"value\":6},{\"source\":14,\"target\":8,\"value\":5},{\"source\":14,\"target\":12,\"value\":4},{\"source\":14,\"target\":4,\"value\":3},{\"source\":14,\"target\":6,\"value\":3},{\"source\":14,\"target\":5,\"value\":2},{\"source\":14,\"target\":0,\"value\":2},{\"source\":14,\"target\":9,\"value\":1},{\"source\":14,\"target\":10,\"value\":1}]};\n\nvar width = 1000,\n height = 800;\n\nvar color = d3.scale.category10();\n\nvar force = d3.layout.force()\n .charge(-700)\n .linkDistance(350)\n .size([width, height]);\n\nvar svg = d3.select(\"body\").append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n \nforce\n .nodes(graph.nodes)\n .links(graph.links)\n .start();\n\nvar link = svg.selectAll(\".link\")\n .data(graph.links)\n .enter().append(\"line\")\n .attr(\"class\", \"link\")\n .style(\"stroke-width\", function(d) { return Math.sqrt(d.value); });\n\nvar node = svg.selectAll(\".node\")\n .data(graph.nodes)\n .enter().append(\"g\")\n .attr(\"class\", \"node\")\n .call(force.drag);\n\nnode.append(\"circle\")\n .attr(\"r\", function(d) { return d.pagerank*10+4 ;})\n .style(\"fill\", function(d) { return color(d.label);})\n .style(\"opacity\", 0.5)\n\nnode.append(\"text\")\n .attr(\"dx\", 10)\n .attr(\"dy\", \".35em\")\n .text(function(d) { return d.name });\n \n//Now we are giving the SVGs co-ordinates - the force layout is generating the co-ordinates which this code is using to update the attributes of the SVG elements\nforce.on(\"tick\", function () {\n link.attr(\"x1\", function (d) {\n return d.source.x;\n })\n .attr(\"y1\", function (d) {\n return d.source.y;\n })\n .attr(\"x2\", function (d) {\n return d.target.x;\n })\n .attr(\"y2\", function (d) {\n return d.target.y;\n });\n d3.selectAll(\"circle\").attr(\"cx\", function (d) {\n return d.x;\n })\n .attr(\"cy\", function (d) {\n return d.y;\n });\n d3.selectAll(\"text\").attr(\"x\", function (d) {\n return d.x;\n })\n .attr(\"y\", function (d) {\n return d.y;\n });\n});\n<\/script>\n</html>\n","arguments":{},"addedWidgets":{},"removedWidgets":[]},"errorSummary":"<div class=\"ansiout\"><console>:32: error: not found: value d3\nimport d3._\n ^\n<console>:36: error: not found: value graphs\ngraphs.force(\n^\n</div>","error":null,"startTime":1.464493956708E12,"submitTime":1.464493760952E12,"finishTime":1.464493964729E12,"collapsed":false,"bindings":{},"inputWidgets":{},"displayType":"table","width":"1064","height":"829","xColumns":null,"yColumns":null,"pivotColumns":null,"pivotAggregation":null,"customPlotOptions":{},"commentThread":[],"commentsVisible":false,"parentHierarchy":[],"diffInserts":[],"diffDeletes":[],"globalVars":{},"latestUser":"mrh77@uclive.ac.nz","commandTitle":"","showCommandTitle":false,"hideCommandCode":false,"hideCommandResult":false,"iPythonMetadata":null,"nuid":"ef5f1a12-69c7-4ec9-9576-b73e026f538f"}],"dashboards":[],"guid":"a5a3ae18-95c6-4194-b05a-59d759d6ec7c","globalVars":{},"iPythonMetadata":null,"inputWidgets":{}};</script> <script src="https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/js/notebook-main.js" onerror="window.mainJsLoadError = true;"></script> </head> <body> <script> if (window.mainJsLoadError) { var u = 'https://databricks-prod-cloudfront.cloud.databricks.com/static/201602081754420800-0c2673ac858e227cad536fdb45d140aeded238db/js/notebook-main.js'; var b = document.getElementsByTagName('body')[0]; var c = document.createElement('div'); c.innerHTML = ('<h1>Network Error</h1>' + '<p><b>Please check your network connection and try again.</b></p>' + '<p>Could not load a required resource: ' + u + '</p>'); c.style.margin = '30px'; c.style.padding = '20px 50px'; c.style.backgroundColor = '#f5f5f5'; c.style.borderRadius = '5px'; b.appendChild(c); } </script> </body> </html>