Skip to content

Instantly share code, notes, and snippets.

@JoshRosen
Last active August 29, 2015 14:10
Show Gist options
  • Save JoshRosen/770b54d5cadf044fa975 to your computer and use it in GitHub Desktop.
Save JoshRosen/770b54d5cadf044fa975 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:b12c210f10c7e5a2491054b836e4d5649edcc14555cdbf013c161076efc2ef01"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# `spark-perf` result analysis\n",
"\n",
"This notebook contains scripts for analyzing the results of [spark-perf](https://github.com/databricks/spark-perf) benchmarks.\n",
"\n",
"This notebook requires PySpark and Spark 1.2.0+. I run this using:\n",
"\n",
"```\n",
"PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS=\"notebook\" $SPARK_HOME/bin/pyspark\n",
"```\n",
"\n",
"from the directory containing this notebook.\n",
"\n",
"**Contact**: Josh Rosen `<joshrosen@databricks.com`>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from copy import copy\n",
"import datetime\n",
"import glob\n",
"import json\n",
"import os\n",
"\n",
"from pyspark.sql import *\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"sns.set_style(\"darkgrid\", {\"grid.linewidth\": .5, \"axes.facecolor\": \".9\"})\n",
"import pylab\n",
"from IPython.html.widgets import interact\n",
"from IPython.display import display_html, display"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 67
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Loading results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Many test suites report their results as JSON objects that contain information on the test environment and configuration, such as the Spark version / commit SHA, the contents of SparkConf, environment variables, etc. Using Spark SQL, we can create a SchemaRDD from these JSON objects in order to analyze test results."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sqlContext = HiveContext(sc)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 68
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"RESULTS_DIR = './december-2/11-defaults-results/'"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 69
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When running spark-perf, it will produce a results directory that contains one subdirectory per run of bin/run. Each subdirectory contains several log files; we're interested in the *.out files that contain test results. First, list the paths of those files:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"results_files = glob.glob(RESULTS_DIR + \"/*_logs/*.out\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 70
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, create an RDD that loads these files, extracts the results lines (which start with \"result: \"), and grabs the JSON objects (which are written on a single line):"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"all_log_lines = sc.union([sc.textFile(f) for f in results_files])\n",
"all_results_jsons = all_log_lines \\\n",
" .filter(lambda x: x.startswith(\"results:\")) \\\n",
" .map(lambda x: x[len(\"results: \"):])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 71
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using SparkSQL, create a SchemaRDD from these logs. In the JSON output that spark-perf writes, some properties have names that contain dots (such as Java system properties like spark.shuffle.manager). Spark SQL does not currently support column names with dots (see [SPARK-2775](https://issues.apache.org/jira/browse/SPARK-2775)), so we'll need to post-process the inferred schema to convert dots into underscores:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"results = sqlContext.jsonRDD(all_results_jsons)\n",
"# Workaround for https://issues.apache.org/jira/browse/SPARK-2775\n",
"def cleanSchema(schemaRDD):\n",
" def renameField(field):\n",
" field = copy(field)\n",
" field.name = field.name.replace(\".\", \"_\")\n",
" field.dataType = doCleanSchema(field.dataType)\n",
" return field\n",
" def doCleanSchema(dataType):\n",
" dataType = copy(dataType)\n",
" if isinstance(dataType, StructType):\n",
" dataType.fields = [renameField(f) for f in dataType.fields]\n",
" elif isinstance(dataType, ArrayType):\n",
" dataType.elementType = doCleanSchema(dataType.elementType )\n",
" return dataType\n",
" \n",
" return sqlContext.applySchema(schemaRDD.map(lambda x: x), doCleanSchema(schemaRDD.schema()))\n",
"results = cleanSchema(results)\n",
"results.registerTempTable(\"results\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 72
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's our table's scehma:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"results.printSchema()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"root\n",
" |-- options: struct (nullable = true)\n",
" | |-- closure-size: string (nullable = true)\n",
" | |-- inter-trial-wait: string (nullable = true)\n",
" | |-- key-length: string (nullable = true)\n",
" | |-- num-jobs: string (nullable = true)\n",
" | |-- num-partitions: string (nullable = true)\n",
" | |-- num-records: string (nullable = true)\n",
" | |-- num-tasks: string (nullable = true)\n",
" | |-- num-trials: string (nullable = true)\n",
" | |-- persistent-type: string (nullable = true)\n",
" | |-- random-seed: string (nullable = true)\n",
" | |-- reduce-tasks: string (nullable = true)\n",
" | |-- storage-location: string (nullable = true)\n",
" | |-- unique-keys: string (nullable = true)\n",
" | |-- unique-values: string (nullable = true)\n",
" | |-- value-length: string (nullable = true)\n",
" |-- results: array (nullable = true)\n",
" | |-- element: struct (containsNull = false)\n",
" | | |-- time: double (nullable = true)\n",
" |-- sparkConf: struct (nullable = true)\n",
" | |-- spark_app_id: string (nullable = true)\n",
" | |-- spark_app_name: string (nullable = true)\n",
" | |-- spark_driver_host: string (nullable = true)\n",
" | |-- spark_driver_memory: string (nullable = true)\n",
" | |-- spark_driver_port: string (nullable = true)\n",
" | |-- spark_executor_extraClassPath: string (nullable = true)\n",
" | |-- spark_executor_extraLibraryPath: string (nullable = true)\n",
" | |-- spark_executor_id: string (nullable = true)\n",
" | |-- spark_executor_memory: string (nullable = true)\n",
" | |-- spark_fileserver_uri: string (nullable = true)\n",
" | |-- spark_jars: string (nullable = true)\n",
" | |-- spark_locality_wait: string (nullable = true)\n",
" | |-- spark_master: string (nullable = true)\n",
" | |-- spark_serializer: string (nullable = true)\n",
" | |-- spark_shuffle_blockTransferService: string (nullable = true)\n",
" | |-- spark_shuffle_manager: string (nullable = true)\n",
" | |-- spark_storage_memoryFraction: string (nullable = true)\n",
" | |-- spark_tachyonStore_folderName: string (nullable = true)\n",
" |-- sparkVersion: string (nullable = true)\n",
" |-- systemProperties: struct (nullable = true)\n",
" | |-- SPARK_SUBMIT: string (nullable = true)\n",
" | |-- awt_toolkit: string (nullable = true)\n",
" | |-- file_encoding: string (nullable = true)\n",
" | |-- file_encoding_pkg: string (nullable = true)\n",
" | |-- file_separator: string (nullable = true)\n",
" | |-- java_awt_graphicsenv: string (nullable = true)\n",
" | |-- java_awt_printerjob: string (nullable = true)\n",
" | |-- java_class_path: string (nullable = true)\n",
" | |-- java_class_version: string (nullable = true)\n",
" | |-- java_endorsed_dirs: string (nullable = true)\n",
" | |-- java_ext_dirs: string (nullable = true)\n",
" | |-- java_home: string (nullable = true)\n",
" | |-- java_io_tmpdir: string (nullable = true)\n",
" | |-- java_library_path: string (nullable = true)\n",
" | |-- java_runtime_name: string (nullable = true)\n",
" | |-- java_runtime_version: string (nullable = true)\n",
" | |-- java_specification_name: string (nullable = true)\n",
" | |-- java_specification_vendor: string (nullable = true)\n",
" | |-- java_specification_version: string (nullable = true)\n",
" | |-- java_vendor: string (nullable = true)\n",
" | |-- java_vendor_url: string (nullable = true)\n",
" | |-- java_vendor_url_bug: string (nullable = true)\n",
" | |-- java_version: string (nullable = true)\n",
" | |-- java_vm_info: string (nullable = true)\n",
" | |-- java_vm_name: string (nullable = true)\n",
" | |-- java_vm_specification_name: string (nullable = true)\n",
" | |-- java_vm_specification_vendor: string (nullable = true)\n",
" | |-- java_vm_specification_version: string (nullable = true)\n",
" | |-- java_vm_vendor: string (nullable = true)\n",
" | |-- java_vm_version: string (nullable = true)\n",
" | |-- line_separator: string (nullable = true)\n",
" | |-- os_arch: string (nullable = true)\n",
" | |-- os_name: string (nullable = true)\n",
" | |-- os_version: string (nullable = true)\n",
" | |-- path_separator: string (nullable = true)\n",
" | |-- spark_app_name: string (nullable = true)\n",
" | |-- spark_driver_memory: string (nullable = true)\n",
" | |-- spark_executor_extraClassPath: string (nullable = true)\n",
" | |-- spark_executor_extraLibraryPath: string (nullable = true)\n",
" | |-- spark_executor_memory: string (nullable = true)\n",
" | |-- spark_jars: string (nullable = true)\n",
" | |-- spark_locality_wait: string (nullable = true)\n",
" | |-- spark_master: string (nullable = true)\n",
" | |-- spark_serializer: string (nullable = true)\n",
" | |-- spark_shuffle_blockTransferService: string (nullable = true)\n",
" | |-- spark_shuffle_manager: string (nullable = true)\n",
" | |-- spark_storage_memoryFraction: string (nullable = true)\n",
" | |-- sparkperf_commitSHA: string (nullable = true)\n",
" | |-- sun_arch_data_model: string (nullable = true)\n",
" | |-- sun_boot_class_path: string (nullable = true)\n",
" | |-- sun_boot_library_path: string (nullable = true)\n",
" | |-- sun_cpu_endian: string (nullable = true)\n",
" | |-- sun_cpu_isalist: string (nullable = true)\n",
" | |-- sun_io_unicode_encoding: string (nullable = true)\n",
" | |-- sun_java_command: string (nullable = true)\n",
" | |-- sun_java_launcher: string (nullable = true)\n",
" | |-- sun_jnu_encoding: string (nullable = true)\n",
" | |-- sun_management_compiler: string (nullable = true)\n",
" | |-- sun_nio_ch_bugLevel: string (nullable = true)\n",
" | |-- sun_os_patch_level: string (nullable = true)\n",
" | |-- user_country: string (nullable = true)\n",
" | |-- user_dir: string (nullable = true)\n",
" | |-- user_home: string (nullable = true)\n",
" | |-- user_language: string (nullable = true)\n",
" | |-- user_name: string (nullable = true)\n",
" | |-- user_timezone: string (nullable = true)\n",
" |-- testName: string (nullable = true)\n",
"\n"
]
}
],
"prompt_number": 73
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this schema, `results` is an array of per-test-run times (or other outcome metrics). For example:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"results.first().results[:10]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 74,
"text": [
"[Row(time=14.64),\n",
" Row(time=8.676),\n",
" Row(time=7.991),\n",
" Row(time=8.891),\n",
" Row(time=9.513),\n",
" Row(time=8.186),\n",
" Row(time=8.097),\n",
" Row(time=9.476),\n",
" Row(time=8.027),\n",
" Row(time=7.355)]"
]
}
],
"prompt_number": 74
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Helper functions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's define a couple of helper functions that will be helpful when performing our analysis:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def sql_to_df(query):\n",
" \"\"\"\n",
" Runs a query with Spark SQL and returns the result as a Pandas data frame.\n",
" \"\"\"\n",
" res = sqlContext.sql(query).collect()\n",
" dicts = [r.asDict() for r in res]\n",
" return pd.DataFrame(dicts)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 75
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To test this out, print the number of individual jobs that were run:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sql_to_df(\"select count(*) from results lateral view explode(results) r as result\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>c_0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 420</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 76,
"text": [
" c_0\n",
"0 420"
]
}
],
"prompt_number": 76
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Building a SchemaRDD with information on Spark commits"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use SparkSQL to extract the SHAs of the commits that were actually tested, then use the `GitPython` library to query a local Spark checkout to get information on those commits. Store the result into a SchemaRDD and register it as a table named `commits`:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"! pip install gitpython;"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Requirement already satisfied (use --upgrade to upgrade): gitpython in /Users/joshrosen/anaconda/lib/python2.7/site-packages\r\n",
"Requirement already satisfied (use --upgrade to upgrade): gitdb>=0.6.0 in /Users/joshrosen/anaconda/lib/python2.7/site-packages (from gitpython)\r\n",
"Requirement already satisfied (use --upgrade to upgrade): smmap>=0.8.3 in /Users/joshrosen/anaconda/lib/python2.7/site-packages (from gitdb>=0.6.0->gitpython)\r\n",
"Cleaning up...\r\n"
]
}
],
"prompt_number": 77
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from git import Repo\n",
"\n",
"repo = Repo(os.environ[\"SPARK_HOME\"])\n",
"commits = (x[0] for x in sqlContext.sql(\"select distinct systemProperties.sparkperf_commitSHA from results\").collect())\n",
"def get_commit_data(sha):\n",
" commit = repo.commit(sha)\n",
" return {\n",
" 'author': str(commit.author),\n",
" 'date': commit.committed_date,\n",
" 'message': commit.message,\n",
" 'sha': sha\n",
" }\n",
"commit_data = sqlContext.jsonRDD(sc.parallelize(json.dumps(get_commit_data(sha)) for sha in commits))\n",
"commit_data.registerTempTable(\"commits\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 78
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sql_to_df(\"select * from commits limit 10\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>author</th>\n",
" <th>date</th>\n",
" <th>message</th>\n",
" <th>sha</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> Patrick Wendell</td>\n",
" <td> 1409722073</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> Andrew Or</td>\n",
" <td> 1416427856</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> Kay Ousterhout</td>\n",
" <td> 1417539984</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 79,
"text": [
" author date \\\n",
"0 Patrick Wendell 1409722073 \n",
"1 Andrew Or 1416427856 \n",
"2 Kay Ousterhout 1417539984 \n",
"\n",
" message \\\n",
"0 [maven-release-plugin] prepare release v1.1.0-... \n",
"1 [maven-release-plugin] prepare release v1.1.1-... \n",
"2 [SPARK-4686] Link to allowed master URLs is br... \n",
"\n",
" sha \n",
"0 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"1 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"2 b97c27ff257f77422ba17903d4e568be738265fb "
]
}
],
"prompt_number": 79
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can join results with commits:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"all_results = sql_to_df(\n",
" 'SELECT sha as sha, sparkVersion, date, message, results, options, systemProperties, testName'\n",
" ' FROM commits, results'\n",
" ' WHERE systemProperties.sparkperf_commitSHA = sha'\n",
")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 80
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"all_results[:3]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>message</th>\n",
" <th>options</th>\n",
" <th>results</th>\n",
" <th>sha</th>\n",
" <th>sparkVersion</th>\n",
" <th>systemProperties</th>\n",
" <th>testName</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 1409722073</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> (None, 3, 10, None, 800, 400000000, None, 10, ...</td>\n",
" <td> [(13.143,), (8.216,), (8.598,), (9.16,), (9.90...</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> 1.1.0</td>\n",
" <td> (true, sun.awt.X11.XToolkit, UTF-8, sun.io, /,...</td>\n",
" <td> aggregate-by-key-int</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 1409722073</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> (None, 3, 10, None, 400, 200000000, None, 10, ...</td>\n",
" <td> [(22.707,), (19.036,), (18.273,), (18.345,), (...</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> 1.1.0</td>\n",
" <td> (true, sun.awt.X11.XToolkit, UTF-8, sun.io, /,...</td>\n",
" <td> aggregate-by-key-naive</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 1409722073</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> (None, 3, 10, None, 400, 2000000000, None, 10,...</td>\n",
" <td> [(174.248,), (168.312,), (168.131,), (166.572,...</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> 1.1.0</td>\n",
" <td> (true, sun.awt.X11.XToolkit, UTF-8, sun.io, /,...</td>\n",
" <td> aggregate-by-key-naive</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 81,
"text": [
" date message \\\n",
"0 1409722073 [maven-release-plugin] prepare release v1.1.0-... \n",
"1 1409722073 [maven-release-plugin] prepare release v1.1.0-... \n",
"2 1409722073 [maven-release-plugin] prepare release v1.1.0-... \n",
"\n",
" options \\\n",
"0 (None, 3, 10, None, 800, 400000000, None, 10, ... \n",
"1 (None, 3, 10, None, 400, 200000000, None, 10, ... \n",
"2 (None, 3, 10, None, 400, 2000000000, None, 10,... \n",
"\n",
" results \\\n",
"0 [(13.143,), (8.216,), (8.598,), (9.16,), (9.90... \n",
"1 [(22.707,), (19.036,), (18.273,), (18.345,), (... \n",
"2 [(174.248,), (168.312,), (168.131,), (166.572,... \n",
"\n",
" sha sparkVersion \\\n",
"0 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 1.1.0 \n",
"1 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 1.1.0 \n",
"2 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 1.1.0 \n",
"\n",
" systemProperties testName \n",
"0 (true, sun.awt.X11.XToolkit, UTF-8, sun.io, /,... aggregate-by-key-int \n",
"1 (true, sun.awt.X11.XToolkit, UTF-8, sun.io, /,... aggregate-by-key-naive \n",
"2 (true, sun.awt.X11.XToolkit, UTF-8, sun.io, /,... aggregate-by-key-naive "
]
}
],
"prompt_number": 81
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Inspecting Spark configurations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `options` field only describes the test options used to configure the tests; we also need to know about the Spark settings (e.g. the shuffle manager or compression codec).\n",
"\n",
"Let's write a function that extracts the Spark configuration from the `systemProperties` field:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def get_spark_conf(propertiesRow):\n",
" props_dict = propertiesRow.asDict()\n",
" conf = {}\n",
" for (k, v) in props_dict.iteritems():\n",
" if k.startswith(\"spark_\"):\n",
" conf[k] = v\n",
" # This is `tuple` so that the result can be used as a dictionary key:\n",
" return tuple(sorted(conf.iteritems()))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 82
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"get_spark_conf(list(all_results[\"systemProperties\"])[0])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 83,
"text": [
"((u'spark_app_name', u'spark.perf.TestRunner'),\n",
" (u'spark_driver_memory', u'10g'),\n",
" (u'spark_executor_extraClassPath', u'/root/ephemeral-hdfs/conf'),\n",
" (u'spark_executor_extraLibraryPath', u'/root/ephemeral-hdfs/lib/native/'),\n",
" (u'spark_executor_memory', u'27357m'),\n",
" (u'spark_jars',\n",
" u'file:/mnt/spark-perf/spark-tests/target/spark-perf-tests-assembly.jar'),\n",
" (u'spark_locality_wait', u'60000000'),\n",
" (u'spark_master',\n",
" u'spark://ec2-54-68-74-63.us-west-2.compute.amazonaws.com:7077'),\n",
" (u'spark_serializer', u'org.apache.spark.serializer.JavaSerializer'),\n",
" (u'spark_shuffle_blockTransferService', u'nio'),\n",
" (u'spark_shuffle_manager', u'hash'),\n",
" (u'spark_storage_memoryFraction', u'0.66'))"
]
}
],
"prompt_number": 83
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Determining how many early runs to discard as JIT warmup runs:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some tests may be slower until the JIT kicks in. For each result, plot a time-series view of its individual test times so that we can determine the number of initial test runs to discard:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for series in list(all_results[\"results\"].apply(lambda x: [y.time for y in x])):\n",
" plt.plot(series)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nWDH+fzLSHBZOb33yAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x119888510>"
]
}
],
"prompt_number": 137
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"WARMUP_RUNS = 3"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 130
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Grouping similar test configurations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In order to perform a fair \"apples-to-apples\" comparision across Spark versions, let's group our test results based on the Spark configuration and test configurations:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from collections import defaultdict\n",
"all_results[\"sparkConf\"] = all_results[\"systemProperties\"].apply(get_spark_conf)\n",
"grouped_results = all_results.groupby([\"testName\", \"options\", \"sparkConf\"])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 97
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's often the case that only a subset of configuration parameters are sweeped / changed across test runs; most parameters stay the same. Therefore, we'll write a pair of functions to identify and subtract out the common configurations so that it's easier to spot the differences."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def get_common_entries(dictionaries):\n",
" from collections import Counter\n",
" from itertools import chain\n",
" # A common configuration is a key-value pair that's present in all dictionaries\n",
" entry_counts = Counter(chain.from_iterable(d.iteritems() for d in dictionaries))\n",
" common_entries = (e for (e, count) in entry_counts.items() if count == len(dictionaries))\n",
" return dict(common_entries)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 138
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"get_common_entries(({'a' : 1, 'b': 2, 'c': 3}, {'a': 1, 'b': 100}))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 139,
"text": [
"{'a': 1}"
]
}
],
"prompt_number": 139
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"common_spark_conf = get_common_entries([dict(sparkConf) for (_, testOptions, sparkConf) in grouped_results.groups])\n",
"common_spark_conf"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 140,
"text": [
"{u'spark_app_name': u'spark.perf.TestRunner',\n",
" u'spark_driver_memory': u'10g',\n",
" u'spark_executor_extraClassPath': u'/root/ephemeral-hdfs/conf',\n",
" u'spark_executor_extraLibraryPath': u'/root/ephemeral-hdfs/lib/native/',\n",
" u'spark_executor_memory': u'27357m',\n",
" u'spark_jars': u'file:/mnt/spark-perf/spark-tests/target/spark-perf-tests-assembly.jar',\n",
" u'spark_locality_wait': u'60000000',\n",
" u'spark_master': u'spark://ec2-54-68-74-63.us-west-2.compute.amazonaws.com:7077',\n",
" u'spark_serializer': u'org.apache.spark.serializer.JavaSerializer',\n",
" u'spark_shuffle_blockTransferService': u'nio',\n",
" u'spark_shuffle_manager': u'hash',\n",
" u'spark_storage_memoryFraction': u'0.66'}"
]
}
],
"prompt_number": 140
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"common_test_conf = get_common_entries([testOptions.asDict() for (_, testOptions, sparkConf) in grouped_results.groups])\n",
"common_test_conf"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 144,
"text": [
"{u'inter-trial-wait': u'3', u'num-trials': u'10', u'random-seed': u'5'}"
]
}
],
"prompt_number": 144
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def subtract_dict(a, b):\n",
" return dict(set(a.items()) - set(b.items()))\n",
"subtract_dict({'a': 1, 'b': 2}, {'a': 1})"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 146,
"text": [
"{'b': 2}"
]
}
],
"prompt_number": 146
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Searching for regressions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's search for cases where we've run the same test configuration (#mappers, #reducers, data size, etc.) with different Spark commits, then build a table that shows the relative performance of the newest revision to other revisions. This will make it easy to spot potential performance regressions:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for group in grouped_results.groups:\n",
" (testName, testOptions, sparkConf) = group\n",
" test_outcomes = grouped_results.get_group(group).sort(\"date\", ascending=False)\n",
" test_outcomes[\"results\"] = test_outcomes[\"results\"].apply(lambda x: [y[0] for y in x][WARMUP_RUNS:])\n",
" test_outcomes[\"avg\"] = test_outcomes[\"results\"].apply(np.mean)\n",
" test_outcomes[\"std\"] = test_outcomes[\"results\"].apply(np.std)\n",
" test_outcomes[\"raw_date\"] = test_outcomes[\"date\"]\n",
" test_outcomes[\"date\"] = pd.to_datetime(test_outcomes[\"date\"], unit='s')\n",
" test_outcomes[\"pct_slowdown\"] = (test_outcomes[\"avg\"] / list(test_outcomes[\"avg\"])[-1] - 1) * 100\n",
" test_outcomes\n",
" display_html(\"<h3>{0}</h3\".format(testName), raw=True)\n",
" # Display a time-series view of the average:\n",
" # Display a table showing the same data:\n",
" display(test_outcomes[[\"sparkVersion\", \"date\", \"sha\", \"message\", \"avg\", \"std\", \"pct_slowdown\"]])\n",
" # Display information on the test configuration:\n",
" display(subtract_dict(testOptions.asDict(), common_test_conf))\n",
" display(subtract_dict(dict(sparkConf), common_spark_conf))\n",
" test_outcomes[[\"avg\", \"date\"]].set_index([\"date\"]).plot(linestyle='--', marker='o', color='g')\n",
" plt.figure(figsize=(3,4))\n",
" plt.show();"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<h3>aggregate-by-key-naive</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>29</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 18.897286</td>\n",
" <td> 0.154582</td>\n",
" <td> 3.742481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 17.671714</td>\n",
" <td> 0.119190</td>\n",
" <td>-2.985672</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 18.215571</td>\n",
" <td> 0.147676</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"29 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"15 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"1 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"29 [SPARK-4686] Link to allowed master URLs is br... 18.897286 0.154582 \n",
"15 [maven-release-plugin] prepare release v1.1.1-... 17.671714 0.119190 \n",
"1 [maven-release-plugin] prepare release v1.1.0-... 18.215571 0.147676 \n",
"\n",
" pct_slowdown \n",
"29 3.742481 \n",
"15 -2.985672 \n",
"1 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'200000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nY1LI/wcTDfj70+PeYwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x11a61df50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11961b990>"
]
},
{
"html": [
"<h3>sort-by-key-int</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>37</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 2.864571</td>\n",
" <td> 0.171555</td>\n",
" <td> 2.389706</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 2.748571</td>\n",
" <td> 0.163861</td>\n",
" <td>-1.756536</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 2.797714</td>\n",
" <td> 0.129721</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"37 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"23 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"9 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"37 [SPARK-4686] Link to allowed master URLs is br... 2.864571 0.171555 \n",
"23 [maven-release-plugin] prepare release v1.1.1-... 2.748571 0.163861 \n",
"9 [maven-release-plugin] prepare release v1.1.0-... 2.797714 0.129721 \n",
"\n",
" pct_slowdown \n",
"37 2.389706 \n",
"23 -1.756536 \n",
"9 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'80',\n",
" u'num-records': u'40000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'80',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'4000',\n",
" u'unique-values': u'200000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1077ee550>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x10d075750>"
]
},
{
"html": [
"<h3>aggregate-by-key-int</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>28</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 8.506429</td>\n",
" <td> 0.749008</td>\n",
" <td> 5.696180</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 7.743571</td>\n",
" <td> 0.943744</td>\n",
" <td>-3.782661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 8.048000</td>\n",
" <td> 0.977475</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"28 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"14 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"0 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"28 [SPARK-4686] Link to allowed master URLs is br... 8.506429 0.749008 \n",
"14 [maven-release-plugin] prepare release v1.1.1-... 7.743571 0.943744 \n",
"0 [maven-release-plugin] prepare release v1.1.0-... 8.048000 0.977475 \n",
"\n",
" pct_slowdown \n",
"28 5.696180 \n",
"14 -3.782661 \n",
"0 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'800',\n",
" u'num-records': u'400000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'800',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'40000',\n",
" u'unique-values': u'2000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x119e84b90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11947efd0>"
]
},
{
"html": [
"<h3>count</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>35</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 0.372857</td>\n",
" <td> 0.050569</td>\n",
" <td>-6.852248</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 0.395143</td>\n",
" <td> 0.049646</td>\n",
" <td>-1.284797</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 0.400286</td>\n",
" <td> 0.044113</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"35 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"21 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"7 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"35 [SPARK-4686] Link to allowed master URLs is br... 0.372857 0.050569 \n",
"21 [maven-release-plugin] prepare release v1.1.1-... 0.395143 0.049646 \n",
"7 [maven-release-plugin] prepare release v1.1.0-... 0.400286 0.044113 \n",
"\n",
" pct_slowdown \n",
"35 -6.852248 \n",
"21 -1.284797 \n",
"7 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'200000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x11a978210>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11947ea90>"
]
},
{
"html": [
"<h3>count</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>36</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 0.507571</td>\n",
" <td> 0.234950</td>\n",
" <td> 18.196939</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 0.454714</td>\n",
" <td> 0.061134</td>\n",
" <td> 5.888224</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 0.429429</td>\n",
" <td> 0.044730</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"36 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"22 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"8 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"36 [SPARK-4686] Link to allowed master URLs is br... 0.507571 0.234950 \n",
"22 [maven-release-plugin] prepare release v1.1.1-... 0.454714 0.061134 \n",
"8 [maven-release-plugin] prepare release v1.1.0-... 0.429429 0.044730 \n",
"\n",
" pct_slowdown \n",
"36 18.196939 \n",
"22 5.888224 \n",
"8 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'2000000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAESCAYAAAAR2wXeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPW9//FXQgIk7BCWsIiC8AEFXMANEVzxiuJWa13r\n1lZr1dZab9W22u1qvV57a61aF2opoj/E7WpdSq1Li3Wl2ADiBwQ3FJAgsgshmd8f3zNhSAKEyTIn\nM+/n4+HDzDln5nw/YfI53/PdTl4ikUBERHJDfqYLICIizUdJX0Qkhyjpi4jkECV9EZEcoqQvIpJD\nlPRFRHJIQaYLsCNLly5tkvGkJSUllJeXN8VHN7tsigUUT9wpnvhKjaW0tDRve8flZE2/sLAw00Vo\nNNkUCyieuFM88VXfWHIy6YuIZKtEIkFeXt52a/qxbt4REZH6SSQSnP7k6cz8dCZcTyXbqdQr6YuI\nZIGjJx/NzKUzk6lebfoiItkqkUjwwvsv7CDVb6WkLyKSQ5T0RURauLy8PI7c40ioxyB3JX0RkSzw\n/HnP06u4106Py4mkn0gk0HMDRCSb5eXlMWn8JHoV9YIqPtnecVmd9JNDmPrc3Yc+d/fh9CdPV/IX\nkay1X8/9mHXOLPg5/bZ3TFYP2fzaU19LHcLEzKUzGfnASJ4860n6tuqb1meuX7+eW265hfXr11Ne\nXs4RRxzB3/72NyZPngzAb37zG0aOHElJSQm33XYbxcXFdO7cmdatW3PNNdc0VmgiItUeXfgor776\nKpfvfTn9O/YnsYPabYtP+gc+eGCd218/8/UwSSH1XiYPlm1cxsH3HUxp+1JSJ629cdYb9Trfp59+\nylFHHcVhhx3GypUrueKKKzAzysrKGDJkCG+//TaXX345l1xyCT/+8Y/p378/9913X9as7yEi8fOH\nuX/g3+X/5nvDv7fTY1t80m9unTt35pFHHuHvf/877dq1o7KykhNOOIHnnnuOzz//nDFjxtCqVStW\nrlxJ//79ARgxYgQvvPBChksuItlobvlcZq+YzfGDjqdv+523YLT4pL+jGvqY3mNC806yQp+AXsW9\nGtS8M336dPbaay9OOukkZs+ezauvvsr+++/PXXfdRXl5OVdeeSUAPXr04MMPP6R///7MmzcvrXOJ\niOzMA/MfAODikRfX6/gWn/R3ZNrEaYx8YCTLNi4DQsKfdc4sevfuzdKlS9P6zEMOOYTf/va3zJw5\nk913353i4mIqKio4/PDDmTVrFqWlpQB873vf4+abb6aoqIjCwkJKSkoaLS4REYD1Fet57L3HKG1X\nynGDjmPF8hU7fU9WJ/3kEKaLZlwEwKTxk9jB4nP1st9++3H//ffX2n722Wdz9tlnV79+9913ufHG\nG+ncuTOTJk3KqiVcRSQeylaUsaVqC2cNOYuC/Pql86xO+pAyhAkanPB3RZcuXbj66qspKiqiffv2\nXHvttc12bhHJDYf0PoR/nfOvXXpP2knfzPKBO4ERwCbgG+6+KGX/lcBFQPJ+41vAe8Bd23tPU2nO\nZJ80btw4xo0b1+znFZHc0rlN5106viGTs04GWrv7aOAa4NYa+/cHznX3I6L/FgKn7OQ9IiLShBqS\n9A8FngNw99eBUTX2jwSuM7N/mNk19XyPiIg0oYYk/Y7AmpTXlVGTT9JDwMXAkcAYMzu+Hu8REZEm\n1JCO3DVAh5TX+e5elfL6NndfA2BmTwP71eM92ygpKWmyUS/JoZXZIJtiAcUTd4onsxKJBJc/eznj\nB47nRDtxm331iaUhSf8VYCIw3cwOBsqSO8ysE1BmZnsBGwi1/UlA8fbeU5emWrqgtLQ07XH6cZNN\nsYDiiTvFk3mzP5vNHW/eweIVizmg4wHV21Nj2VHyb0jSfxw4xsxeiV5fYGZnAu3d/d6oHf9Fwiid\n5939OTPLq/meBpxfRCTnTJk/BYBzh56b1vvTTvrungC+XWPzgpT9DxHa9Xf2HhERqYc1m9fwf4v+\nj34d+jG279i0PkOdqCIiLcSjCx9l45aNnD3kbPLz0kvfSvoiIi3E04ufpiCvgDPsjLQ/I+uXYRAR\nyRZTJ0zl7c/epkdxj7Q/QzV9EZEWok2rNhxUelCDPkNJX0Qkhyjpi4jkECV9EZEcoqQvIhJjc8rn\nMHX+VNZXrG+Uz1PSFxGJsXvn3MvV/7iat1e83Sifp6QvIhJTq75cxVOLn2JApwGMLh3dKJ+ppC8i\nElOPLHyETZWbOGfoOY32BEAlfRGRGEokEkyZP4XW+a356uCvNtrnKumLiMTQm8vf5L0v3uP4AcfT\nrW23RvtcLcMgIhJDo3qO4qEJD9G9qHujfq6SvohIDOXn5TOu77jG/9xG/0QREYktJX0RkRyipC8i\nkkOU9EVEYuTZ959lxYYVTfb5SvoiIjFRvrGcS/52CWc9e1aTnUNJX0QkJqb5NCqqKviafa3JzqGk\nLyISA1WJKqa+O5W2rdpy2qDTmuw8SvoiIjEw85OZfLDmA04ceCKd23RusvMo6YuIxMAD8x8A4Jyh\n5zTpeTQjV0QkBi7b7zIGdRnEyB4jm/Q8SvoiIjEwomQEI0pGNPl51LwjIpJDlPRFRHKIkr6ISA5R\n0hcRyZCVX65k0ReLmvWcSvoiIhky5Z0pHPbwYTz7wbPNdk4lfRGRDKisqmTqu1MpLihmTO8xzXZe\nJX0RkQx4aclLfLLuE07Z8xQ6tO7QbOdV0hcRyYDkDNxzh57brOdV0hcRaWZL1y/l+Y+eDxOyujf9\nhKxUmpErItLMCvMLuXSfSxnadWizn1tJX0SkmZUUlXDtgddm5NxpJX0zywfuBEYAm4BvuHutwaZm\ndg+w0t2vjd5zHzAYqAK+6e6edslFRGSXpdumfzLQ2t1HA9cAt9Y8wMwuBoYBiWjTeKCdu48Bfg78\nV5rnFhGRNKWb9A8FngNw99eBUak7zWw0cCBwN5AXbd4IdDKzPKATsDnNc4uISJrSTfodgTUpryuj\n5hvMrBS4HriMrQkf4BWgLfAu4WJwe5rnFhFpkZZvWE4ikdj5gU0oL50CmNmtwGvuPj16/bG794t+\nvhw4D1gL9AKKCReBPoTmnR+ZWV/gBWCYu2+3xl9RUZEoLCzc5fKJiMTNlqot9P9NfwZ2GcjL579M\nXl7ezt+Uvu1+eLqjd14BJgLTzexgoCy5w91vJ6rFm9l5gLn7ZDP7L7beHawCCoFWOzpJeXl5msXb\nsdLSUpYuXdokn93csikWUDxxp3jS99wHz/Hp2k8Z3288y5Yta/TPT42ltLR0u8elm/QfB44xs1ei\n1xeY2ZlAe3e/dzvvuQW438z+QUj417r7xjTPLyLSolTPwN2reWfg1pRW0nf3BPDtGpsX1HHc5JSf\nvwBOSed8IiIt2cdrP+bFj19kZM+RGZmQlUrLMIiINLGp86eSINHs6+zURUlfRKSJ9e/Yn/177M/E\nARMzXRQtwyAi0tTOHHImZw45M9PFAFTTFxHJKUr6IiI5RElfRCSHKOmLiDSByqpKKqsqM12MWpT0\nRUSawDMfPMNBDx3ESx+/lOmibENJX0SkCUyZP4VP139Kn/Z9Ml2UbSjpi4g0svdXv8/MT2ZycOnB\nDOoyKNPF2YaSvohII6teZycGM3BrUtIXEWlEmyo3MW3BNLq27cqEPSZkuji1aEauiEgjWrFhBQM6\nDWBUz1G0adUm08WpRUlfRKQR9e3QlydPepItVVsyXZQ6qXlHRKQJFOTHs06tpC8ikkOU9EVEcoiS\nvohIDlHSFxFpBOf/5Xyu/+f1VCWqMl2UHVLSFxFpoAWrFjDjwxn4Kic/L95pNd6lExFpAeI8A7cm\nJX0RkQbYuGUj0xdMp3tRd47d/dhMF2enlPRFRBrgz4v/zOrNqznDzqAwvzDTxdkpJX0RkQZY9MUi\nCvIKOHvI2ZkuSr0o6YuINMA1B17D7HNns1vH3TJdlHpR0hcRaaBubbtlugj1pqQvIpJDlPRFRHKI\nkr6ISA5R0hcR2UXvrHyHS/92KfNWzst0UXaZkr6IyC6aMn8KTyx6giVrl2S6KLtMSV9EZBesr1jP\nowsfpbRdKUftdlSmi7PLlPRFRHbBE4ueYF3FOs60M2P7dKwdUdIXEdkFD8x/gPy8fM4aclami5IW\nJX0RkXr6dN2n+OfOUf2Oonf73pkuTlpa3r2JiEiG9G7fm9nnzGb1ptWZLkralPRFRHZBpzad6NSm\nU6aLkba0kr6Z5QN3AiOATcA33H1RHcfdA6x092uj19cCE4FC4HfuPjndgouIyK5Lt03/ZKC1u48G\nrgFurXmAmV0MDAMS0evDgUOi9xwODEjz3CIikqZ0k/6hwHMA7v46MCp1p5mNBg4E7gbyos3HAnPM\n7AngKeDJNM8tIiJpSjfpdwTWpLyujJp8MLNS4HrgMrYmfIASYCRwGnAJMDXNc4uINKv75t7H04uf\nprKqMtNFabB0O3LXAB1SXue7e1X082mEBP8M0AsoNrN3gXJgvrtvARaY2ZdmVuLu5ds7SUlJCYWF\nTfP4sdLS0ib53EzIplhA8cRdrsWzZtMabn7zZrq3686Foy8kPy++I93r82+TbtJ/hdAhO93MDgbK\nkjvc/XbgdgAzOw8Y4u6Tzex44LvAr82sN9AOWLmjk5SXb/d60CClpaUsXbq0ST67uWVTLKB44i4X\n45n8zmTWV6zn8kGXs3zZ8mYq2a5LjWVHyT/dpP84cIyZvRK9vsDMzgTau/u9NY5NALj702Y21sze\nIDQrXeruiTTPLyLS5BKJBFPmT6Egr4Az7IxMF6dRpJX0o2T97RqbF9Rx3OQar3+YzvlERDJh9orZ\nvLPyHY7f43h6FPfIdHEaRXwbp0REMuyRBY8AcM7QczJcksajGbkiIttxwyE3MKbPGA7rc1imi9Jo\nlPRFRLajTas2TNhjQqaL0ajUvCMikkOU9EVEUiQSCRKJ7B1YqOYdERFCsv/aU19j5qczARjTewzT\nJk4jLy9vJ+9sWVTTFxGBkPCXzgxZMR9mLp3JyAdGMnv57EwXrVEp6YtITttUuYm3P3s71PBTK/V5\nsGzjMi6acVFWNfco6YtITnv6/aeZ8Hh2jdDZEbXpi0hWWl+xnrkr5zKnfA5zVsyhTas2/PfY/651\n3Kgeozhv7/N45eNXeG/Ne1tr+wnoVdyLSeMnZVW7vpK+iGSVT9Z9wlnPnMV7X7xHgq3NMr3b9SaR\nSNRK4Lt13I2bxtxEIpFg5AMjWbZxGRAS/qxzZmVVwgclfRFpYb7Y9AVzyuewYNUCLhp2Ua39PYp7\n8PmXn3Nw6cGMKBnB8JLhDC8ZzoBOA3aYwPPy8pg0fhIXzQifmW01/CQlfRGJvTv/fSdvf/Y2ZeVl\nfLT2o+rtEwdMrLUQWmF+IWXnlqWVsPfruR+zzpkFkJUJH5T0RSQmPtvwGR1bd6RtQdta+6YvmI6v\ncrq06cK4vuOqa/DtCtvV+VkNSdjZmuyTlPRFpNkt37Ccf6/4N2UrykJHa/kclm1YxsPHP8yYPmNq\nHX/b4bfRtagrfdr1yfqk3NSU9EWk2V3/z+t5avFT1a9L25VyzG7H0LpV6zqPH9F9RHMVLesp6YtI\no0gkEny09iPmlM+hrDzU4E/Z8xROH3x6rWNPHngyQ7sOrW6m6V7cPQMlzk1K+iLSYNN8Gj999aes\n3rx6m+1Duw6t8/jj9jiO4/Y4rjmKJjUo6YvIDlVWVbJ49WLKyssoXVXK6C6jax3TtW1XuhV1C52s\n3UcwomQEw0qG0blN5wyUWHZESV9Ealmydgm/L/s9c8rnMG/lPDZs2QDAQX0O4vHjH691/DH9j+GY\n/sc0dzElDUr6IjmqoqqCJWuXsEenPWrt25LYwh/m/YH8vHwGdx7MiO6h5n7MUCX2lk5JXyQHVCWq\nmFs+t7qDtay8jPkr59OmVRvmnz+f/Lxt117s36E/T530FEO7DaW4oLh6e2lpKUuXLm3u4ksjUtIX\nyQFViSpOfvJkvqz8EoDW+a0Z2m0ow7sNZ+OWjbUmOeXl5TGy58hMFFWamJK+SAu2oWLD1pUko/+m\n/McUerfvvc1xBfkFXDXyKrq07cKIkhEM7jJ4u2PiJbsp6Yu0UN+Y8Q2e/eDZbVaSLCoo4qO1H9VK\n+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\nH+E89GEniqSUAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x11982fd10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11a8a2b10>"
]
},
{
"html": [
"<h3>sort-by-key-int</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>38</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 26.359714</td>\n",
" <td> 0.881785</td>\n",
" <td> -3.906384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 23.932429</td>\n",
" <td> 0.613263</td>\n",
" <td>-12.754988</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 27.431286</td>\n",
" <td> 2.846317</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"38 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"24 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"10 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"38 [SPARK-4686] Link to allowed master URLs is br... 26.359714 0.881785 \n",
"24 [maven-release-plugin] prepare release v1.1.1-... 23.932429 0.613263 \n",
"10 [maven-release-plugin] prepare release v1.1.0-... 27.431286 2.846317 \n",
"\n",
" pct_slowdown \n",
"38 -3.906384 \n",
"24 -12.754988 \n",
"10 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'80',\n",
" u'num-records': u'400000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'80',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'4000',\n",
" u'unique-values': u'200000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nkvZ1kR+cAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x119a32550>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x1077ee790>"
]
},
{
"html": [
"<h3>count-with-filter</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>33</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 0.663000</td>\n",
" <td> 0.116586</td>\n",
" <td> 23.826041</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 0.527286</td>\n",
" <td> 0.039184</td>\n",
" <td> -1.520811</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 0.535429</td>\n",
" <td> 0.061623</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"33 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"19 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"5 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"33 [SPARK-4686] Link to allowed master URLs is br... 0.663000 0.116586 \n",
"19 [maven-release-plugin] prepare release v1.1.1-... 0.527286 0.039184 \n",
"5 [maven-release-plugin] prepare release v1.1.0-... 0.535429 0.061623 \n",
"\n",
" pct_slowdown \n",
"33 23.826041 \n",
"19 -1.520811 \n",
"5 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'200000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x11a61df90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11a0c1e50>"
]
},
{
"html": [
"<h3>count-with-filter</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>34</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 3.498286</td>\n",
" <td> 0.034706</td>\n",
" <td>-1.134483</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 3.627571</td>\n",
" <td> 0.036067</td>\n",
" <td> 2.519278</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 3.538429</td>\n",
" <td> 0.050937</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"34 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"20 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"6 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"34 [SPARK-4686] Link to allowed master URLs is br... 3.498286 0.034706 \n",
"20 [maven-release-plugin] prepare release v1.1.1-... 3.627571 0.036067 \n",
"6 [maven-release-plugin] prepare release v1.1.0-... 3.538429 0.050937 \n",
"\n",
" pct_slowdown \n",
"34 -1.134483 \n",
"20 2.519278 \n",
"6 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'2000000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x11a267d50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11a8a2350>"
]
},
{
"html": [
"<h3>aggregate-by-key-naive</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>30</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 178.145571</td>\n",
" <td> 1.404643</td>\n",
" <td> 6.587102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 166.198143</td>\n",
" <td> 1.337895</td>\n",
" <td>-0.561219</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 167.136143</td>\n",
" <td> 0.875722</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"30 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"16 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"2 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"30 [SPARK-4686] Link to allowed master URLs is br... 178.145571 1.404643 \n",
"16 [maven-release-plugin] prepare release v1.1.1-... 166.198143 1.337895 \n",
"2 [maven-release-plugin] prepare release v1.1.0-... 167.136143 0.875722 \n",
"\n",
" pct_slowdown \n",
"30 6.587102 \n",
"16 -0.561219 \n",
"2 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'2000000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nBgAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x11a978150>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11a267150>"
]
},
{
"html": [
"<h3>aggregate-by-key</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>32</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 18.053143</td>\n",
" <td> 0.254805</td>\n",
" <td> 0.350989</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 18.016571</td>\n",
" <td> 0.306975</td>\n",
" <td> 0.147701</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 17.990000</td>\n",
" <td> 0.274381</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"32 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"18 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"4 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"32 [SPARK-4686] Link to allowed master URLs is br... 18.053143 0.254805 \n",
"18 [maven-release-plugin] prepare release v1.1.1-... 18.016571 0.306975 \n",
"4 [maven-release-plugin] prepare release v1.1.0-... 17.990000 0.274381 \n",
"\n",
" pct_slowdown \n",
"32 0.350989 \n",
"18 0.147701 \n",
"4 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'2000000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nRK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x10c6f6ed0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11a9781d0>"
]
},
{
"html": [
"<h3>scheduling-throughput</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>41</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 2.786000</td>\n",
" <td> 0.101656</td>\n",
" <td>-20.253527</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 3.511286</td>\n",
" <td> 0.061588</td>\n",
" <td> 0.507054</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 3.493571</td>\n",
" <td> 0.028127</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"41 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"27 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"13 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"41 [SPARK-4686] Link to allowed master URLs is br... 2.786000 0.101656 \n",
"27 [maven-release-plugin] prepare release v1.1.1-... 3.511286 0.061588 \n",
"13 [maven-release-plugin] prepare release v1.1.0-... 3.493571 0.028127 \n",
"\n",
" pct_slowdown \n",
"41 -20.253527 \n",
"27 0.507054 \n",
"13 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': u'0',\n",
" u'key-length': None,\n",
" u'num-jobs': u'1',\n",
" u'num-partitions': None,\n",
" u'num-records': None,\n",
" u'num-tasks': u'10000',\n",
" u'persistent-type': None,\n",
" u'reduce-tasks': None,\n",
" u'storage-location': None,\n",
" u'unique-keys': None,\n",
" u'unique-values': None,\n",
" u'value-length': None}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x1198cfd90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x10d188590>"
]
},
{
"html": [
"<h3>sort-by-key</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>40</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 24.945571</td>\n",
" <td> 0.596441</td>\n",
" <td> 4.908410</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 23.832429</td>\n",
" <td> 0.858637</td>\n",
" <td> 0.227097</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 23.778429</td>\n",
" <td> 1.233640</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"40 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"26 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"12 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"40 [SPARK-4686] Link to allowed master URLs is br... 24.945571 0.596441 \n",
"26 [maven-release-plugin] prepare release v1.1.1-... 23.832429 0.858637 \n",
"12 [maven-release-plugin] prepare release v1.1.0-... 23.778429 1.233640 \n",
"\n",
" pct_slowdown \n",
"40 4.908410 \n",
"26 0.227097 \n",
"12 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'40',\n",
" u'num-records': u'200000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'40',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'2000',\n",
" u'unique-values': u'100000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x11a62f1d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x1073c9650>"
]
},
{
"html": [
"<h3>sort-by-key</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>39</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 2.955857</td>\n",
" <td> 0.188661</td>\n",
" <td> 7.810546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 2.771143</td>\n",
" <td> 0.153663</td>\n",
" <td> 1.073364</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 2.741714</td>\n",
" <td> 0.114998</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"39 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"25 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"11 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"39 [SPARK-4686] Link to allowed master URLs is br... 2.955857 0.188661 \n",
"25 [maven-release-plugin] prepare release v1.1.1-... 2.771143 0.153663 \n",
"11 [maven-release-plugin] prepare release v1.1.0-... 2.741714 0.114998 \n",
"\n",
" pct_slowdown \n",
"39 7.810546 \n",
"25 1.073364 \n",
"11 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'40',\n",
" u'num-records': u'20000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'40',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'2000',\n",
" u'unique-values': u'100000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nySH/HzGivBXp7AFAAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x11aa7cf50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x10c793150>"
]
},
{
"html": [
"<h3>aggregate-by-key</h3"
],
"metadata": {},
"output_type": "display_data"
},
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sparkVersion</th>\n",
" <th>date</th>\n",
" <th>sha</th>\n",
" <th>message</th>\n",
" <th>avg</th>\n",
" <th>std</th>\n",
" <th>pct_slowdown</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>31</th>\n",
" <td> 1.2.0</td>\n",
" <td>2014-12-02 17:06:24</td>\n",
" <td> b97c27ff257f77422ba17903d4e568be738265fb</td>\n",
" <td> [SPARK-4686] Link to allowed master URLs is br...</td>\n",
" <td> 3.520714</td>\n",
" <td> 0.318255</td>\n",
" <td> 10.908600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td> 1.1.1</td>\n",
" <td>2014-11-19 20:10:56</td>\n",
" <td> 3693ae5d3c01861557e06edbc32a8112683f3d86</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.1-...</td>\n",
" <td> 3.146286</td>\n",
" <td> 0.104379</td>\n",
" <td> -0.886549</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> 1.1.0</td>\n",
" <td>2014-09-03 05:27:53</td>\n",
" <td> 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460</td>\n",
" <td> [maven-release-plugin] prepare release v1.1.0-...</td>\n",
" <td> 3.174429</td>\n",
" <td> 0.094288</td>\n",
" <td> 0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "display_data",
"text": [
" sparkVersion date sha \\\n",
"31 1.2.0 2014-12-02 17:06:24 b97c27ff257f77422ba17903d4e568be738265fb \n",
"17 1.1.1 2014-11-19 20:10:56 3693ae5d3c01861557e06edbc32a8112683f3d86 \n",
"3 1.1.0 2014-09-03 05:27:53 2f9b2bd7844ee8393dc9c319f4fefedf95f5e460 \n",
"\n",
" message avg std \\\n",
"31 [SPARK-4686] Link to allowed master URLs is br... 3.520714 0.318255 \n",
"17 [maven-release-plugin] prepare release v1.1.1-... 3.146286 0.104379 \n",
"3 [maven-release-plugin] prepare release v1.1.0-... 3.174429 0.094288 \n",
"\n",
" pct_slowdown \n",
"31 10.908600 \n",
"17 -0.886549 \n",
"3 0.000000 "
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{u'closure-size': None,\n",
" u'key-length': u'10',\n",
" u'num-jobs': None,\n",
" u'num-partitions': u'400',\n",
" u'num-records': u'200000000',\n",
" u'num-tasks': None,\n",
" u'persistent-type': u'memory',\n",
" u'reduce-tasks': u'400',\n",
" u'storage-location': u'hdfs://:9000/spark-perf-kv-data',\n",
" u'unique-keys': u'20000',\n",
" u'unique-values': u'1000000',\n",
" u'value-length': u'10'}"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"{}"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAESCAYAAAAR2wXeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmcVXX9x/HXnY1Z2AVhBBRR+biUipCJgiCW/n6Gpmaa\nu2mmLWqWVvprz7RdMy0Tyd0yqTQriRIQKZdEisT8ZKYCMaAg68zAbPf3x/fc4TKbM8yduWfufT8f\nDx8y5557zvczc+/nfM93O4lkMomIiOSHgmwXQEREeo+SvohIHlHSFxHJI0r6IiJ5RElfRCSPKOmL\niOSRomwXoCNVVVU9Mp502LBhrFu3ricO3etyKRZQPHGneOIrPZbKyspEe/vlZU2/uLg420XImFyK\nBRRP3Cme+OpsLHmZ9EVE8pWSvohIHlHSFxHJI0r6IiJ5RElfRCSPKOmLiOQRJX0RkTyipC8i0gnJ\nZJK+8PyRZDJJIpFod3JWrGfkiohkWzKZ5IxHz2Dx6sUATNljCg+e+CAd5NWsSCaTnP6b00M5v0Qj\n7VTqlfRFRDpwxqNnsLhqcXMKXVy1mIn3TWT2cbOZMGLCLh2zurqa73znO1RXV7Nu3TqOOeYYHn/8\nce6++24AbrrpJiZOnMiwYcP4wQ9+QHl5OYMHD6akpITPf/7zbR7zPXe/J72cqumLiLTn8AcOb3P7\nM2c+E2rO6XXmBKypXcOJD59IZf/KnWr8z571bKfOt3r1ao499limTp3K+vXrufzyyzEzli1bxv77\n78/f/vY3LrvsMi699FK+8IUvsNdee3HHHXe0u05QMplk/qvzO9Vgr6QvItLLBg8ezJw5c1i0aBEV\nFRU0NjYyc+ZM5s6dy1tvvcWUKVMoLCxk/fr17LXXXgAcfPDBzJ8/v9vnVtIXkbzXUQ19yh5TQrNJ\nqkKfhJHlI7vVvPPQQw9x4IEH8v73v5+lS5fy1FNPcdhhh/HjH/+YdevWceWVVwKw++678/rrr7PX\nXnuxfPnydo+XSCSYsfcM5r82v4OGnUBJX0SkAw+e+CAT75vImto1QEj4S85Z0q2O3MmTJ3PzzTez\nePFixo4dS3l5OfX19UyfPp0lS5ZQWVkJwKc+9Sm+9a1vUVZWRnFxMcOGDWv3mH86/09UXFdBbVNt\nh+dW0hcR6UAikWD2cbO5aN5FAMw+bna3R+5MmDCBO++8s9X2s88+m7PPPrv555deeonrr7+ewYMH\nM3v27LddPrm8qJzabbUA/21vHyV9EZG3MWHEBJacswSgV4dqDhkyhKuvvpqysjL69+/PNddc0+6+\nL775Iuvr1nPiPify6PmPjuGrbe+X0aRvZoXALGA8kAQudfflaa9fCVwEvBltusTd/5XJMoiI9IRs\njMufNm0a06ZN69S+a6vXMm7QOI7d61h+k/xNu7PIMl3Tnwk0ufsUM5sGfAM4Oe31w4Bz3X1phs8r\nIpLXZuw9g8VnLKYp2dThfhldhsHdHwEuiX4cC2xosctE4Foze9LM2p5hICIiu6wg0XFaz/jaO+7e\naGZ3ATcDD7R4+WeEi8IMYIqZvS/T5xcRkfYlemoBITMbATwDHODutdG2ge6+Ofr3x4Dd3P269o5R\nX1+fzKUHF4uI9JLeWYbBzM4FRrv7DUAt0ETo0MXMBgHLzOxAoIZQ25/d0fHam3LcXZWVlVRVVfXI\nsXtbLsUCiifuFE98pceSGufflkw378wBDjWzJ4C5wBXAKWZ2sbtvAj4PLAAWAS+4+9wMn19EJK+s\n2LyCm56/iZfXv9yp/TNa04+acc7o4PWfEdr1RUQkA/7w+h/49nPfZnzleE6oPOFt99dDVERE+rAF\nKxcA8D/7/k+n9lfSFxHpo2oaaniq6ikOHHogowaO6tR7lPRFRPqop1Y/xfbG7UwfM73T71HSFxHp\no+avDOvrzxgzo9Pv0YJrIiJ91HkHnMfIipFMGjGp0+9R0hcR6aNsqGFDrUvvUfOOiEgeUdIXEckj\nSvoiInlESV9EpI+pa6zb5fcq6YuI9DHfeOYbHPnzI3ll4ytdfq+SvohIHzN/5XzeqHmD0QNGd/m9\nSvoiIn3Iis0reGXTKxy1x1H0K+zX5fcr6YuI9CELVoUF1mbs2flZuOmU9EVE+pD5K8LSC8eMPmaX\n3q+kLyLSRySTSTZu38i+g/dlz4F77tIxtAyDiEgfkUgkeOT9j1DTULPLx1BNX0SkjykvKt/l9yrp\ni4jkESV9EZE8oqQvIpJHlPRFRPqAX778S56peoZkMtmt42j0johIzNU11nHN4mvYvXx3Fp+xuFvH\nUk1fRCTmnlv7HFvrtzJ99PRuH0tJX0Qk5nblAejtUdIXEYm5BSsX0K+wH0fscUS3j6WkLyISY1XV\nVfzzrX8yuXJytyZlpagjV0QkxkoLS/na5K/t0tr5bVHSFxGJsSGlQ/jIOz+SseOpeUdEJI8o6YuI\n5BElfRGRPKKkLyISU91dcqEtSvoiIjG0tmYtkx6YxO3Lbs/ocZX0RURiaOHKhVRVV5Eks7V9JX0R\nkRhKLb1wzJhdewB6e5T0RURipqGpgSf/+ySj+o9iv8H7ZfTYGZ2cZWaFwCxgPJAELnX35W3sdzuw\n3t2vyeT5RURywdI3lrJx+0ZOHHciiUQio8fOdE1/JtDk7lOALwDfaLmDmV0CvAMy3FAlIpIjXnrr\nJQoSBUwfMz3jx85oTd/dHzGz30Y/jgU2pL9uZkcChwM/AfbP5LlFRHLFuQeey8xxMykrKsv4sTPe\npu/ujWZ2F3Az8EBqu5lVAl8CPglk9n5FRCTHDCkdQmlRacaPm+iJwf8AZjYCeAY4wN1rzewy4Hxg\nCzASKAe+6O73tHeM+vr6ZHFxcY+UT0Qkh7Vbsc50R+65wGh3vwGoBZqI2u7d/YfAD6P9zgf27yjh\nA6xbty6TxWtWWVlJVVVVjxy7t+VSLKB44k7xxFd6LJWVle3ul+nmnTnAoWb2BDAXuAI4xcwubmNf\ndeSKiPSyTHfk1gJndGK/uzN5XhGRXPD65td5ddOrHFF5RI+054MmZ4mIxMZD/3qIsx47i8dXPN5j\n51DSFxGJiYWrFlKUKGLq6Kk9dg4lfRGRGFi/bT1L31jKpJGTGFgysMfOo6QvIhIDi1YtIkmSY0Zn\ndoG1lpT0RURiYMHKBUDmV9VsKaOjd0REZNfMGDODgkQBB+12UI+eR0lfRCQGTt73ZE7e9+QeP4+a\nd0RE8oiSvohIHlHSFxHJI0r6IiJ5RElfRCSLvvLUV/jY4x9j0/ZNvXI+jd4REcmSpmQTD//7YZpo\nYkDJgF45p2r6IiJZ8uL6F3mj9g2mj55OQaJ30rGSvohIlvTWLNx0SvoiIlkyf+V8EiQ4evTRvXZO\nJX0RkSyobahl2bplTNh9AruV7tZr51VHrohIFpQVlbHs3GWsqV7Tq+dVTV9EJEsqiivYZ/A+vXpO\nJX0RkTyipC8ikkeU9EVE8oiSvohIL3u66mm21G3JyrmV9EVEetHWuq2c/tvTOev3Z2Xl/Er6IiK9\n6MnVT9KQbGDq6KlZOb+SvohIL1qwIlp6YXTvLb2QTklfRKSXJJNJFqxawOB+g5mw+4SslEFJX0Sk\nl7y88WX+u/W/TB01laKC7CyIoGUYRER6SYIEp+57KsePPT5rZVDSFxHpJfsN2Y9bZtyS1TKoeUdE\nJI8o6YuI5BElfRGRPKKkLyKSR5T0RUR62CsbX+GCP1zAwlULs10UJX0RkZ62YOUC5r0+j9VbV2e7\nKEr6IiI9bf7K+QAcMyY7Sy+ky+g4fTMrBGYB44EkcKm7L097/QPA56LX7nf3mzN5fhGRuKlpqOGp\nqqc4YOgBVFZUZrs4Ga/pzwSa3H0K8AXgG6kXogvCDcCxwGTg42Y2NMPnFxGJladXP832xu2xqOVD\nhpO+uz8CXBL9OBbYkPZaI7C/u28BhgOFQF0mzy8iEjdPrHoCiEfTDvTAMgzu3mhmdwGnAKe1eK3J\nzE4FbgF+C9Rk+vwiInFy7buv5dg9j+VdI96V7aIAkEgmkz1yYDMbATwDHODutS1eSwB3AQvc/a72\njlFfX58sLi7ukfKJiOSwRHsvZLoj91xgtLvfANQCTYROW8xsIPAo8F53rzOzaqCxo+OtW7cuk8Vr\nVllZSVVVVY8cu7flUiygeOJO8cRXeiyVle13GGe6I3cOcKiZPQHMBa4ATjGzi919M3AfsMjMniRc\nEO7L8PlFRKQDGa3pR804Z3Tw+izCkE4REckCTc4SEekBa2vWsn7b+mwXoxUlfRGRHvCjv/2Ig+85\nmOffeD7bRdmJkr6ISA+Yv3I+ZUVlHLTbQdkuyk6U9EVEMmzF5hW8sukVjtrjKPoV9st2cXaipC8i\nkmELVi0A4jMLN52SvohIhi1YGZL+jDEzslyS1pT0RUQybOzAsUwZNYU9B+6Z7aK0kvG1d0RE8t1X\nJn8l20Vol2r6IiJ5RElfRCSPKOmLiOQRJX0RkTyipC8ikiHfX/J9blt2G41NHa4an1VK+iIiGVDX\nWMdty27j3hfvpbCgMNvFaZeSvohIBjy39jm21m9l+pjp2S5Kh5T0RUQyIM6zcNMp6YuIZMCClQvo\nV9iPyXtMznZROqSkLyLSTWuq1/DiWy9yROURlBeVZ7s4HdIyDCIi3TSsbBiPnPRItovRKUr6IiLd\nVFRQxLtGvivbxegUNe+IiOQRJX0RkTyipC8ikkeU9EVEuuHNmjezXYQuUdIXEdlFb9S8wSH3HcJV\ni67KdlE6TUlfRGQXLVy1EIB9B++b3YJ0gZK+iMgumr9iPgDHjD4myyXpPCV9EZFd0NjUyKL/LmKP\nij0YP2R8tovTaUr6IiK7YOmbS9m4fSMzxswgkUhkuzidpqQvIrILNm/fzLhB4zhmTN9p2gEtwyAi\nsktm7DmDGXvOIJlMZrsoXaKavohIN/Slph1Q0hcRyStK+iIieURJX0Qkjyjpi4h0wUtvvcSNz9/I\na5tfy3ZRdklGR++YWSEwCxgPJIFL3X152utnAlcADcA/gI+7e9/q+haRvPa7V3/H95Z8j/0G78fY\ngWOzXZwuy3RNfybQ5O5TgC8A30i9YGZlwNeB6dHrg6L9RUT6jIUrF1KYKGTqqKnZLsouyWjSd/dH\ngEuiH8cCG9Je3gZMdvdt0c9FQG0mzy8i0pPe2vYWz7/xPJNGTGJQv0HZLs4uyfjkLHdvNLO7gFOA\n09K2J4E3AczsMqDC3f+U6fOLiPSUJ1Y9QZJkn5uFm65HOnLd/QJCu/6sqFkHADMrMLPvAscCH+iJ\nc4uI9JSFKxcC9Omkn8jkFGIzOxcY7e43mNlA4G/AgakmHTObRWjmubwzHbj19fXJ4uLijJVPRKQ7\nXnjjBea9Mo9PHfEpChKxHvzY7jThTCf9MuAuYCRQDNwA9I/+ey76b1HaW37g7g+3d7yqqqoeGdlT\nWVlJVVVVTxy61+VSLKB44k7xxFd6LJWVle0m/Yy26bt7LXBGB7sUZvJ8IiLSNbG+PxERkcxS0hcR\nySNK+iIib2Nbw7Y+t25+e5T0RUTexjWLr+HInx/J6q2rs12Ubov1k7OSyWSfe0CBiOSWZDLJwlUL\naWhqYGTFyGwXp9tiXdMf9ZNRnP6b03PmtkpE+p7l65eztmYt00dPj/vY/E6JdwQFsLhqMRPvm8jS\ntUuzXRoRyUMLVi4A4Jg9++4s3HTxTvoACVhTu4Yzf3cmD//7Yf74+h/ZWrc126USkTwxf+V8EiSY\nNnpatouSEbFu00+3uW4zH3/845CAhR9cyPiS8a32OXbOsazcspLyonIqiisoKy6jvKicW2fcypgB\nY1rt/3P/ObUNtZQXlVNeXN78voOHH0x5UXlvhCUiMdbQ1MD2xu0ctvth7Fa6W7aLkxHxT/pJGFQy\niAsPupDhFcOprq9m9/Ld29x13KBxFCQKqKmvoaahhnW166hpqKEp2dTm/jc9fxMrtqxotX3xGYsZ\nN2hcq+3/++v/5Y2aNygrKmu+UFQUV/Ddo79LZUVlq/0f/vfDNDQ1NF9QUv/fb8h+9Cvs18VfhIj0\ntqKCIn5/yu/Z1rDt7XfuI2Kf9EeWj2TJOUs6NYpn1ntntdrWUSfwt6d+mw3bNzRfJGoaaqitr2VY\n2bA29x9QMoCN2zaypW4La6rXUNtQS5Jku+f4+jNfp6q69boez575LKMHjG61/aRHTmLT9k073XWU\nFZVx/VHXs1tZ61rG3NfmMmTTELZv2b7ThWV0/9EUFcT+TyvSZ5QWlWa7CBkT68wwsmwks4+b3a1h\nmx299+jRR3fpWL943y92+jmZTFLbWEtpYdsfiK8f+XU2bN9AbX0t1fXVzReW9h6+sK1hG+u3rWfl\nlpVsa9xRs7juyOva3P9zT36ON2vfbLX9+bOfb3No2Qd/+0Fq6muaLyapC8WXjvhSm2VatGoRhQWF\n4WKSdqcypHRIToxiEMlHsU76na3hZ0sikeiw7f+EvU/o0vHmfWBe87+bkk3UNoSLRVu1fIBrDr+G\nZL8ka95aQ019TfOFZWDJwDb3X7llJWtr1rK9cftO2794xBfb3P/Sxy9l4/aNrbb/47x/tNm+ec5j\n51DfVN98l5K6UFw96Woqiita7f/XNX+lpLCE8qLy5v6XoQ1DNT9DpAfFOunn8xe/IFFARXFFm8ky\n5UP2oS4tDfv0mU8DoXOqpqGm+ULR3kXiysOuZHPdZqrrq6ltqG3ev6Ko7TL9dc1f2VK/pdX2qydd\n3eb+Zz12FtX11a22v3TBS22W6SPzPgLQqo/kk4d+ss3b7xfXv0i/wn7NfS/lReVq9pK8p29AHioq\nKGJgycB2k33Kxe+8uEvH9Q87dY11OzVl1dbXUlZU1ub+l7zzErbWb92pT6WxoLHdu6d5r8+jIdnQ\navtlEy5rc/8Tfn0CdU11O20rKSjhxQtebPMcn5j/CYoLinfqpC8vKueid1zU5sXi9c2vU1pUSkVR\naC4rLNDK4bnk/n/ez76D9+Xdle/OdlEySklfMqqksISSwhKGMORt971q0lWttnV05+If9uYLSfqF\npaSgpNW+yWSS8w48r/mOZqeLUGHri1BTsolf//vXbZ73I+/4SJvHP+rBo3YaGVZaWEpZURl/P/fv\nbV4krl50NaVFpa36SM7c/8w2+0jW166nrLiMssKyvL7rzYatdVu59s/XcsDQA5h76txsFyejlPSl\nzygrKgt3DZ0YSJFIJPjakV/r9LETJPj7OX9vvjikLhS1DbVt1uAbk418cL8PNu9TU19DdUM19Y31\nbSb8usY67n/p/lbbCxOFnLX/Wa2P39TIO+99Z3PZUh3v/Yv78+cz/tzqItCUbOKrT321VdNXRXEF\nJ+1zUqvjJ5NJtjdup19hP11Q2rB49WLqm+qZMWZGtouScUr6IoSLxPDy4Z3ev6igiBun39il/f98\nxp+padjR4V5bX8u2xm1tJt36pnpm7j1zp/1r6muay9rStoZtzHqh9ZDl0sLSNpP+9sbtjPtpmNeS\nfucxqN8gHjvlsVb7NzQ1cOPzNzJy6EgaahuaLyj9i/szfcz0Tv8e+oJkMsn8FfOBvv0A9PYo6Yv0\ngoJEAXsP2rvT+5cWlXL7e2/v9P4lhSXMPXVuq6avhqbWfSAQkvi00dN2ugDVNNRQ31Tf5v7V9dXc\n+Hzri1z/4v7868P/arV9a91WDrz7wNAvUlxOWVEZFcUV7Fa6Gw+c8ECr/bc3buenL/x0p1Ff5cXl\nDCgewMQREzv9e+iOZDLJGY+eweLViwEopJBDhx/aK+fuTUr6IjmgqKCIg4cd3On9+5f052cn/KzT\n+5cVlTFn5hxKB5Sy6o1VzReLJG1PTKxvqueQ4Yc036FsqdvC2pq1rKle0+b+W+q28PVnvt5q+5B+\nQ1h+/vJW2zds28CUB6c0X0xSzVnDy4Zz23tua7X/toZtzHl5zo7mr+jCMq5wHEMZChASftXi5hXJ\nGpONvPuBdzP7uNlMGDGhs7+q2FPSF5G3VVJYwpF7HBk62ge8/RDhIaVDePTkR1ttb2/2ev/i/tx5\n3J07dbhX11e3OyKqoamB4eXDqamv2WlCY1vLoQBs2L6Bzz752VbbR/YfyfNnPU8ymQw1/PT+9Gix\nx4vmXRT7OUNdoaQvIr2mvcRZWlTK8WOP7/RxhpcPZ+EHF+60rbGpsdXEw5SBJQO55ZhbWvWRDBvc\n9pIruUxJX0RyQmFBIeUFbc/xqCiu4NT9Tm21PTVEOJFIMGWPKaF5J3VdSoa1v7q7FEzcaAEVERHg\nwRMfZGT5jjWrUos95lJ7Pijpi4gAoelp9nGzGVk2MiOLPcaVmndERCITRkxgyTlLgNxd+0tJX0Qk\nTa4m+xQ174iI5BElfRGRPKKkLyKSR5T0RUTyiJK+iEgeUdIXEckjSvoiInlESV9EJI8o6YuI5BEl\nfRGRPJLxZRjMrBCYBYwHksCl7r68xT7lwB+BC93dM10GERFpW0/U9GcCTe4+BfgC8I30F81sErAI\n2BvaedaaiIj0iIwnfXd/BLgk+nEssKHFLiXAyYBq+CIivaxHVtl090Yzuws4BTitxWt/ATCznji1\niIh0oMc6ct39AkK7/iwzK+up84iISOf1REfuucBod78BqAWa2MW2+8rKyh5b2LqysrKnDt3rcikW\nUDxxp3jiqzOx9ERNfw5wqJk9AcwFrgBOMbOLe+BcIiLSBYlkUgNoRETyhSZniYjkESV9EZE8oqQv\nIpJHlPRFRPJIj0zOigMzGwoMdPfXsl2WTMileMxsPLAPMM/dG7Ndnu7KwXgOB6a4+/ezXZbuyqVY\nUszsaKAhNdG1q3Kyph8t+vYL4Fwz65/t8nRXrsUDfBr4GHBwtguSIbkWz1nAh8zsMAAz67H5Mr0g\nl2JJ+TZwqpntAV2PKeeSvpkVAakZwHsAR2exON2WS/GYWXH0zyJgEzDFzEqyWKRuycF4Unf+dcAC\nojW03L3PjevOpVhSzKzAzEYBGwmfuaOg6zHlxDj91BXP3VdHP48jrPC5DGgAngZedvdNWStkF+RS\nPGZ2EDDS3R+Pfi4hxLIceAfwFrDA3f+WvVJ2Xg7Gcywwyt3viX4uAx4ALge+BGwBHnb3RdkrZefk\nWCwJd0+a2TRgU+rzZGb7ARcALxGWuXkd+IO7r+zssft8TT9am/97wPFptzl7E2YG/wm4FPgBMCg7\nJeyaXIsH+CzhVnRM9PMYwufuL8D/Ap8AyqHP3HrnWjwfBD5gZsOjn8cCS4A9gcOBE4BV2Slal+VM\nLFHCLwO+AkyP8gKERP8y8AZwHqH5qqYrx+6zST/tC/VeYBpwCDAp2tYPuAG4GfgXsBAoJsZyLR4A\nMzsCOJJwgTrGzAqA7cCJwF3A74BfAZUQ/1vvXIgn6h9K/ftE4EBgJXBZtLmJULH4LPA14DeEZBo7\nuRRLOy4CRhEuXlOibUXAtcDFwGzgKcKFoNP63OgdM/tfYB3wavR/CL+ESuBwM1tGqGn9Fvgu0Ah8\nFdgXeKXXC/w2cikeM/skMBRY7O7zgdXA+YQP7TuAAwjNHz8E7nX37Wb2CUK7a+zkUjxRTfE7wFtm\nttzdfw48R7irfAX4gpkdCrwGnBfFi5mtJ1Q6YiOXYkmJYvoq8E9gubs/Q4jpTGA6cJiZPU34vH3O\n3X8dve//gG1dOVefaNOPasEDCLXdAwlP3jrS3d9rZkPd/S0zO4nwy5nTciiTmY1w97W9Xe725FI8\nUW23CPgmsDthlNGVwB3ufn+0z+7RtpXAXe5ek/b+EnePTZLMtXigOaFcR0gOvyLUED8H/DF69sUA\nQs1xjLtfmfa+RNzuVnIplhQzGw3cCrwILCX0PxwPVLl7k5lNBk4H5rv7oy3e2+W4Yt+8Y2YFUVD9\ngdHAse7+ZWCrmX3T3d+Kdv0j8CZwdPRLbO7BTyXIOLSx5lI80QWqKUpypcBt7v4bwq30l1O33+7+\nBqHNezzhQtZc9jglyByMJ/WkonpgInCnuz9HuGN8P2AA7r4F+AMwyszOiN4bqySZS7GkmFlqHeQG\nwkXsq+7+C+BR4Ifu3gTg7k8R7mCmRAMJ0j9vXY4r1knfzC4CbjWzKYQE+W9gQvTy5cBZZrYngLvX\nEr6IlcBu0baG9ONl+w+fK/GYWaGZ3QD8zMy+bGZTCR1Lu5tZqbsvIIw0ui7tbX8C1hI1YWX7b5Eu\nB+MZa2a3Az+N4poG/JLwJDvc/V4gQUieKa8C9xM9xjQu8eRSLClmNs7CkwVnmdlHCPM7XgMOBXD3\na4B3mNkxaW+bT2ja2RTts8sxxTLpm1lJ9Ic+GngB+CgwgtC2Pc7MBkZDlB4k3NoB4O5PAF9x979n\nodjtyqV4ohrGVYRnHV9EGL2yJ+FZyO+Kfga4Bphs0WSy6CL2LXd/ttcL3YFciydyGWFI3/sICXAK\nYdTKKDN7V7TPXODC1BvcvcbdH4nhUNNcigUzqyDcOS4AvgjMINT0+wETzGxEtOtNwIdS73P3F939\nW+7e7dFHsUz6hB7rw9z9fHe/lVDOrYTe96MIX0aAvwLPw063Oxuy3ezRhpyJJ6phnAr8IvoA/g14\nN/BjwqiWmVG76zjgWXffmvbepiwUuUO5Fo+F5TomAfe4+0ZgJCGp/JGQNK+Odh0EPGk7JjHFTi7F\nkmYYMNnd73b3pYQRRgMIo78OIlzcIAwg6JH5BLFM+u7+KnBXdFWE0N5VAMwjDFn8sJn9GPgyYXLC\nTrc7cbud68vxmNnotD6F1DDRCwkdThD6Jv4ZtWXfSfgA/5IwYWlxLxe308wsEXXaQh+Ox8wGp/27\nIOoT+oS7p0aClQFLo7buHwFVZjYH+DDwQMsmw2yynYdgFvblWFLSPmOpmF4HTkt7rZEw0fJvhCG/\nk8xsHmFo8NM9Uaasj94xs9OB/wCvufs6Myt29/q01w8m9Gwf7WHCwnBgIHAs8JC7b8hKwdsRxfMy\n8Ho0CqfPxmNmHyVMBLvF3a9u8VoCGA7cA1zq7q+Z2Tvd/R9mNtHdl2ShyB2yMJZ7jLv/KPoCNqa9\n1hfj+RjwTuCb7r4iSvpNaa+PBH4G/A+hhrmPuy8ys5HuviY7pW4t6tD8JqHC85S7P9bG96ZPxJIS\nlfd6wghLKhHtAAAObklEQVSvp9x9bhsxTQeucveZZjaMcMeyAnhHdBfQI7JW0zezUWb2IHAO8AFC\njzWpX0pak8Z44NfAWDN7iLBi3ivufnvU9FEYh+YPM6s0s/sJU6Q/RBi73SfjMbMpZraQMBb9PkIN\npLkmljYaYjThgn1gtP+0KPHELkFGjgcusDBKpzFVC+tr8aTdcY0ifJ6OjmJoil5P/6xtJnzHHiD0\nVRCnJBk14XwL+AfwDPALMytq53sT61hSoordA4Sm2meBh1rElMq744BnzOx84GFgrLvX92TChywk\n/bQ/4higyN1Pinqri83sa6l90po0zgQ+Tph4McejSQlp+zVmufkj1Y44Ghji7icQEv621K13X4nH\nzEqjfw4APuvulxNGFbwLIFUzTivfCYQZjycB17r7LXFq57Ywnj7172mEkVAvEDrSAJLQp+IZCTsq\nEoQ7xGWE+QQHpP5+afH8D+FCtw/wIXe/r3dL3D4z2y36ZyGhv+u77v47wqiod6b26wuxpNiOpRKG\nAq9Gn5/fETqaD0ztl/aZugC4AtgPON2j9Zx6Wq8275jZx4FqwlVtMqFJ4zZ3f8XMPk34BRzk7ltT\nt0Jm9kNgs7v/X9pxYjHu1sw+Rbha30n4Ag5x94ej9vlphKv9D919U3Slb4hjPGY2iLBcawPwpIcZ\njqkL2heBp6Nb7sKohpxaDGoKsL+735Gtsrcliuc6wqzlBYThe3WEpS2WEO4qr3T3v0Z3L00xj+dQ\nwqiufoQRXn8B/kv4vtwB3ELoBPyWuz+U9lk7Cih294XZKXnbombD3YFbo7vb2YRhyfsQ+rteAX5P\naO6sjd4Ty1gALIwi+jRQReiQLQTq3H15WrPUae6+Ptq/wMOkqw8D//EwSq/X9ErSjzow7yFMNtpO\n+KU8SeisSBA60fYn1Cj/5O7Xp723KNVB07IdNlvMbCBwN6H9bRWh7D9w92XR658AHiF8Gd9094vT\n3hureKJbzesISfFXhMku9wK/i/okvgzs5e4XZvvi1BnRhepbhHH2vyDE9nCUDFMXrcuBo9w91pN3\nUszsDkKn3hJCU2gxIa4HCKNYjgLWADe4e+w6m1PSKgsLCJW/H7r7H6LXPgMMdff/M7OTCePwPwbU\nxvxvM5gwK/heQpv88cB97v776PUrCP0Pl1sYmr05e6UNeqt5Zy+g1N0vdfcrCF/I4YQa/3zCELnv\nE2rML6S/MaqxJKKrY9YTfmR/YJi7X+Hu3yHUUsrSXv+Jh+F/d9JifZwYxlMIvIewdswyQtPUwewY\nRno3hEky0Rc26/0nb6MfMBO428OoqVeJHm6SukshxLSHmZ0XbY9zUhlB+HzdF7X1/pxwV3klsJ7Q\nBzGDcFE4KqqQxFL0+TmAMO7+WcK49L2jl8sIQzIh5ItGIBnnv01kD0JSf9jd7wb+DBxhZqkmqpHA\nPWZ2ATDfwtLIWdUrSd/dXwSGRe2qEIYq7kmYUv134AnCjNTLCV/Slu9Pxqlt1cOEnPvNrChqR90G\n1EXJfAZwQ1Q7+yJtjLXNZjxmVpZK3GmjCeYS2rKJ/r2RsJwzhC/jVkK7Y+wSZIt4ity9mtDmm+rg\nKyNt6Fv0u99EGB77Yq8X+G1En6HmC6uHJTdKCBPIIIwGmR9tu9bdb4ri+RVhfaCs1yRTWsYSeZOw\n6uWjhCaed0fb/wgUmtmfCC0AX0417cRJy3ii3PaymZ0VbfoDUEE0i54wnPR+wozh09395d4qa3sy\n3rzTsski+iUlCE+uOcTdL42230642s8mTI55B3B9WidVLLQRT8thce8lrHr3nujnfQlX/0MI/RWx\nicfCAz/eQ2hy+mva9omEpHKruy82s/cBH3f390WvH5xquoqT9uJJe90ITWwzCU0ie7n78t4t5a4x\ns4roAoaZ7U/o4Dwo6h+aCUx1989Fv4P6uF2M07WIpbkpzcwuIQyAeNDdX4iaSka4u2exuG2K8lhB\ny1xAyG2nACcT5hRsMrPvEZbnmEXoK7vLY/TglozV9Fs2WaSPJIiS5ONAPwtjiyGsO1MRvf5Ld/9q\n1HFb2PYZelcH8bQcFrcv4fbtMAsTRUa5+yJ3/2Fc4mlRhpHA9WZ2oe0Y+vcSofb4jejnPYCXLDzE\ngbgl/A7iKWpRu9ybMLrlBEIN7KBeLmqnWNpQ2Oj/7yYs8FYQfQZfIgzz/VFUqZhOmESGu9fFKeF3\nFAs0N/Gk8s5jhBrx4dFd2sY4JnxozmONZlZuZh+IytsU5YfFhCR/Q7R7P8IKmevc/cI4JXzIYNJP\nJXczGx8lvxstPL4s9fq/gNsIs0/nEDqk5qYfI0bt3J2JJxklzXOBzxDWZvlJek98VKvJdkdt852K\nh1mmuxOGxA1K3YW4e7W7zwKWmtk9hHkGP47p7XVH8TREf7dUEjyNMMLlaOASDysYxkZaIkx9RlLP\n190P2BJVMFJDgj9NeGDG1wn9MFcRI52JxXasUppaPXIFoTZ8r8d8Nm3083mE0WBnA6fZjnWY1hCW\nQ64ws98TYv9ZLxe307rVvJP+BYyu7KcR2oZvJbSlXgRc4WFWY2rkxAjCrMjnul/8zOpiPKlhVz8j\nzLi7Oe04sRoNYmZjCWPTNxPafocQ1jT5iYeZp6khfgVA/zi1C7elE/GkPmsnASXuPid7pW2tnaaC\nqwlNnD8gjMT5FaEJp77F57IsThfjrsaS/r44fUfStRNTgrD0w4/dfVl0ARsCVPuOYaXFQLnH/NnV\nu5z0W7TN7UUYungpoRNtarT9TsK6Ete3bAuPXm8evphtuxBPavhZ+hcyq0Mwow/ixYQJVevc/TkL\n07t/TVg/5i+EZrXhhDutJsITuZbH8QuYg/FUEIYgppoIxxEm6v2HEMve0c+3Ejr+7gBWKJbsMLN9\nCA8vWUoYbLIMOM7dX7WwBPrFhOUjalvmtjjrUvOO7ZixmWreONbMUg+Z+BRh/erfmdkp0W5LgNpo\n/1a/lGwn/G7Gk5rN2Ri1vWa1KcfCAyPmEdqtDwDuMLPjCZPHlngY5fEsoeNpGmFFz/cROkJjt/Be\nDsYzidAE8K7o52MIwy9fAYzQZPAy4bN3AfBJYGsck2QuxQKhcmFmU23Hw+4xs1MJQ67/TRhtdCph\n7s2t0QXvfEKs9X0p4UMnn5Eb1Xy/AhSZWZO7n29h1MD5hOe59ic837GUsN7E/1lY3MoIEyxiJdPx\nZPuPbmHUw0zCKKLnom0rCB/UXwHHm5lFnWQnEybB3G5mz3mMFnhLybV4IqsJ37dDzGwJYe7AY+7+\n46jJ8yrC6Lb7zexVQl/R9pg2g+RMLGZ2GmHOw4vAwWb2I8Ks55HATwm1/AHAcYQh5Z8m3LVsIPQT\nxeZJaZ31tknfwoO7P0O4pX6QMBEEQudZJaGW9QHColyvEZYKXgwMd/ejMl/k7sm1eCKnECayPGfR\nM1rd/ZfRHUoxoW31mujOZihh1i0xTpB9Ph4LK0feSZjs9oS7r7YwBv0E4AjCZ2t/C0/mWhvVHlOP\nw1zFjpEgWZdLsaREF6c5hKUTLvEwZPS9wFTCRWstoYb/HsJAgI8Shsx+2dKGoPZFnbkNnkSYDXir\nh3Wtq83scMLDJvoBp7j7DMKSBDMJky9+CyTMmp9rGSe5Fg/APwnP2B3o7nW2Y93+xYQ1P24DPk9Y\ny+Q4d5+XtZJ2Ti7EU0+4IP0CuM3CY/HmEYb2HRS9XkdoLriZ0IQVuyc9RXIplpQEYWWAh6OEnyAM\nW15MWE4hQVj182lCJfGDhEmK9OWED51r3vkPcIuF6dPHEoYjrSckxU8DnzGzBwijW653981m5oQF\nk7b0TLG7JdfigfDh3UKokfw27UM5ktAckhpW9svsFK/L+nw8Hp4N8UVC08Y8wsO7JxNWl32d8Hn7\narS93MOKprGUS7GkuPsaM5tFGEK+2MPw0UYzW0WI6/uEi8DZhAUSp2SxuBnVqdE70W1PBdDo7o9G\n254jtHNtJaxMGKsJPB3JtXgALKzJ/T5Cs9Q/CR3RZYTVJF/LYtF2SS7EE/VNfBrY4O43RhWNawlD\ngf8AnONpj1+Ms1yKJcXMBhCacJrc/ctp239PeJDOimyPyOsJnU36JcBod/9P9PNnCONwP+HuNWn7\n9YlfUK7Fk2JmJxDWMjkE+JW735PlInVLLsRjO5bdvcndn4m2TSAsExzHh6q3K5diSYliupwwGqmB\nsELrm8DVfbGTtjM6m/SHEm7f9iCslbEUuM4z8GT2bMi1eFqK4yiJ7ujL8UQVjE8Ak9z97GyXpzty\nKZaUKKZPEtrtXyCskxPb2bSZ0OnJWdHt3SRC+9az0bZWE676ilyLR+LLwnK6EwkLi/XJi1dKLsWS\nYmFi2UzCAok5WbtPt0szcqOe7kSuJMhci0dEpD2dmpyVLu1WO1eu8jkVj4hIR3r1GbkiIpJdsVuj\nREREeo6SvohIHlHSFxHJI0r6IiJ5RElfpANmdku0JER7r9+Zvg67SNwp6Yt07O2Gt01H3yPpQzRk\nU6QFM/sucCJhTfU64F5gPOHZC0MJSwqfCnyYsJzHy4QVQfchrM5YHu1zSV9ZHE7yh2ooImnM7AOE\n5TkOJCwVvC9hEuN4d5/s7kZ4hN7Z7v5NwlOkTiCsznoHcKa7TyQk/1lZCEGkQ12ekSuS46YDc6LV\nVTeY2cOE1RevMrOPEh6ZOZmQ+NONJzy/99G0Z+0M6JUSi3SBkr7IzpLsfAfcAOxGeHjI94CHom2J\nFu8rBP7j7hMgLN5HeOiLSKyoeUdkZ38EPmRmJWY2kLD6YhJY6O63Ex7ochwhyUO4ABQDLwFDzSz1\nhKULgft7teQinaCavkgad3/UzCYR1lZ/k5DMy4BDzGwpoYP2MWDv6C2/JTxK8zjCc1R/ED2wfRPQ\n7lBPkWzR6B0RkTyi5h0RkTyipC8ikkeU9EVE8oiSvohIHlHSFxHJI0r6IiJ5RElfRCSPKOmLiOSR\n/wd+1peqXpdbDgAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x11a6fcf50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"text": [
"<matplotlib.figure.Figure at 0x11a6fc090>"
]
}
],
"prompt_number": 148
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Graphs"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"test_names = sql_to_df(\"select distinct testName from results\")[\"testName\"]\n",
"\n",
"def show_test_results(test_name):\n",
" query = \"\"\"\n",
" SELECT sha as sha, sparkVersion, date, message, results, options, systemProperties, testName\n",
" FROM commits, results\n",
" WHERE\n",
" testName = \"{0}\"\n",
" and systemProperties.sparkperf_commitSHA = sha\n",
" ORDER BY date\n",
" \"\"\".format(test_name)\n",
" res = sql_to_df(query)\n",
" res[\"results\"] = res[\"results\"].apply(lambda x: [y[0] for y in x][WARMUP_RUNS:])\n",
" y_pos = np.arange(len(res)) + 1\n",
" plt.boxplot(list(res[\"results\"]), vert=False, showmeans=True, meanline=True)\n",
" #plt.errorbar(y = y_pos, x = res[\"avg_time\"], xerr=res[\"stdev\"], linestyle='None', marker='.')\n",
" axis_labels = []\n",
" for (sha, date) in zip(res[\"sha\"], res[\"date\"]):\n",
" datestr = datetime.datetime.fromtimestamp(date).strftime('%Y-%m-%d')\n",
" axis_labels.append(datestr + \" (%s)\" % sha[:10])\n",
" plt.yticks(y_pos, axis_labels)\n",
" plt.title(\"Results for {0}\".format(test_name))\n",
" plt.ylabel(\"Commits (newest at top)\")\n",
" plt.xlabel(\"Test time (seconds)\")\n",
" #axes = plt.gca()\n",
" #axes.set_xlim([0, 1])\n",
" #test_results.groupby(\"sha\").plot(y=\"avg_time\", xerr=test_results[\"stdev\"], kind=\"barh\")\n",
"#show_test_results(\"count\")\n",
"interact(show_test_results, test_name=list(test_names))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nSUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x11a96aad0>"
]
}
],
"prompt_number": 91
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analyzing the 1.2 performance regression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[a9e9104 [SPARK-3546] InputStream of ManagedBuffer is not closed and causes running out of file descriptor](https://github.com/apache/spark/pull/2408) explains the first middle drop + the performance problems for the lsat job in the test run.\n",
"\n",
"[90f73fc [SPARK-3889] Attempt to avoid SIGBUS by not mmapping files in ConnectionManager](https://github.com/apache/spark/pull/2742) explains the improvement at the top of the graph."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 64
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 64
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 64
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 71
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment