Skip to content

Instantly share code, notes, and snippets.

@marco-c
Created February 14, 2017 13:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marco-c/f6aba367d4ef2838cfb5e96cc2e552dc to your computer and use it in GitHub Desktop.
Save marco-c/f6aba367d4ef2838cfb5e96cc2e552dc to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/hadoop/anaconda2/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import os\n",
"from datetime import datetime, timedelta\n",
"from pyspark.sql import functions\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"num_days = 7\n",
"days = [datetime.utcnow().date() - timedelta(1) - timedelta(i) for i in range(0, num_days)]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dataset = SQLContext(sc).read.load(['s3://telemetry-parquet/socorro_crash/v1/crash_date=' + day.strftime('%Y%m%d') for day in days], 'parquet')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"length_histogram = dataset\\\n",
".filter(dataset['product'] == 'Firefox')\\\n",
".select(functions.explode(dataset['json_dump']['modules']).alias('module')).rdd\\\n",
".map(lambda v: len(v['module']['filename']))\\\n",
".histogram(10)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"([0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80],\n",
" [12117311, 151970057, 15454562, 7952337, 14166202, 2776918, 1820, 196, 59, 8])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"length_histogram"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgkAAAFsCAYAAABGsyqMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAHWhJREFUeJzt3X+QpVV95/H3B1BZUDuVjDWjlSFKVJysKbAbTViFxCVC\niCvGCis0sioYswSyyXZ2448yFsEtJZrAxGQhEDUCgr3B7G6C+QGIIWZXRHRa2E0c0BXICAoymjSJ\nMIrMd/94bmtPc3pm7p3u29133q+qLrnnOec+52vPzP3c8/xKVSFJkrTQASs9AUmStDoZEiRJUpMh\nQZIkNRkSJElSkyFBkiQ1GRIkSVKTIUGSJDUZEiRJUpMhQZIkNRkSJElS06oOCUmOTXJtkvuS7Exy\n8gDvcWKSTyV5KMnXkvxxkh9ajvlKkjRKVnVIAA4FbgPOAfp+yESSZwJ/AtwIHAmcAKwD/vuSzVCS\npBGVtfKApyQ7gZ+tqmvntT0ReBdwGvB9wP8F3lJVn+ht/zngw1X1pHlj/g1dcHhSVT02xBIkSVpT\nVvtKwp5cDPwY8GrgR4GPAH+Z5Id727cAO5OcmeSAJGPAvwM+ZkCQJGn31uxKQpKNwF3Axqq6f16/\njwGfrqpf770+DrgG+AHgQOBm4Geq6qEhlyBJ0pqyllcSfpTuQ/8LSf5p7gc4DvhhgCTrgfcBHwSO\n7m17FM9JkCRpjw5a6QnsgycD3wHGgZ0Ltv1z73/PBWar6q1zG5KcAXw5yYuq6tahzFSSpDVoLYeE\nz9GtJKyvqk8u0ucQuiAx31ygWMurKJIkLbu+PygHuXdBkicmeWeSe5LsSHJXktfvxbhDkxyZ5Khe\n0+G91xur6ovAh4Erk7wqyTOTvCjJW5Kc1Ov/58CLkrw9ybOTjNMderibLmRIkqRFDPJtepB7F3wE\neClwJvBcYBK4cy/GHU33Yb6lt68LgRng/N721wNXAr8N3AH8j96YbQBVdRNwOvDK3ri/AB4BTqqq\nb+3l3CVJ2i/t09UNrXsXNPr8NN03/sOr6h8H3pkkSRqqYRyXfwXwWeDNSe5NcmeS30py8BD2LUmS\nBjSMExcPB44FdgA/S3db5N8Hvh94Q2tAkh8ATgTu6Y2TJEl752DgmcD1VfX1fXmjYYSEA+iuKDi9\nqv4ZIMmvAh9Jcs4i5wacCFw9hLlJkjSqXkN3uH9gwwgJXwXumwsIPVuBAD8IfKkx5h6Aq666ik2b\nNi37BFfS1NQUmzdvXulpLDvrHC3WOVr2lzph/6h169atnHHGGdD7LN0XwwgJnwROSXJIVT3cazuC\nbnXh3kXG7ADYtGkT4+PjQ5jiyhkbGxv5GsE6R411jpb9pU7Yv2plCQ7XD3KfhEXvXdDbfkGSK+YN\n+TDwdeCDSTb1nqXwHuADXoYoSdLqNcjVDXu6d8EGYONc56r6JvAyukc5fwb4EPCnwK8MPGtJkrTs\n+j7cUFWfYDfhoqrObLR9ge5kREmStEb4/IIVNjk5udJTGArrHC3WOVr2lzph/6p1KezTHReXS+8Z\nC1u2bNmyP51gIknSPpuZmWFiYgJgoqpm9uW9XEmQJElNhgRJktRkSJAkSU2GBEmS1GRIkCRJTYYE\nSZLUZEiQJElNw3jAk3q2bdvG9u3bV3QO69at47DDDlvROUiS1gZDwpBs27aNI47YxI4dD++58zI6\n+OBDuPPOrQYFSdIeGRKGZPv27b2AcBWwaYVmsZUdO85g+/bthgRJ0h4ZEoZuE+CtpiVJq58nLkqS\npCZDgiRJajIkSJKkJkOCJElqMiRIkqQmQ4IkSWoyJEiSpCZDgiRJajIkSJKkJkOCJElqMiRIkqQm\nQ4IkSWoyJEiSpCZDgiRJajIkSJKkpr5DQpJjk1yb5L4kO5Oc3MfYFyd5NMlMv/uVJEnDNchKwqHA\nbcA5QO3toCRjwBXAjQPsU5IkDdlB/Q6oquuA6wCSpI+hlwJXAzuBV/a7X0mSNFxDOSchyZnAs4Dz\nh7E/SZK07/peSehXkucA7wJeUlU7+1t8kCRJK2VZQ0KSA+gOMZxXVV+aa97b8VNTU4yNje3SNjk5\nyeTk5NJNUpKkNWp6eprp6eld2mZnZ5fs/Zd7JeEpwNHAUUku7rUdQHc6w7eBE6rqrxcbvHnzZsbH\nx5d5ipIkrU2tL84zMzNMTEwsyfsvd0h4CHj+grZzgZcCPwfcs8z7lyRJA+o7JCQ5FHg23ztscHiS\nI4FvVNWXk1wAPKOqXldVBXx+wfivATuqaus+zl2SJC2jQVYSjgZuortHQgEX9tqvAM4CNgAbl2R2\nkiRpxQxyn4RPsJtLJ6vqzD2MPx8vhZQkadXz2Q2SJKnJkCBJkpoMCZIkqcmQIEmSmgwJkiSpyZAg\nSZKaDAmSJKnJkCBJkpoMCZIkqcmQIEmSmgwJkiSpyZAgSZKaDAmSJKnJkCBJkpoMCZIkqcmQIEmS\nmgwJkiSpyZAgSZKaDAmSJKnJkCBJkpoMCZIkqcmQIEmSmgwJkiSpyZAgSZKaDAmSJKnJkCBJkpoM\nCZIkqcmQIEmSmvoOCUmOTXJtkvuS7Exy8h76vyrJDUm+lmQ2yc1JThh8ypIkaRgGWUk4FLgNOAeo\nveh/HHADcBIwDtwEfDTJkQPsW5IkDclB/Q6oquuA6wCSZC/6Ty1oeluSVwKvAG7vd/+SJGk4hn5O\nQi9YPAX4xrD3LUmS9t5KnLj4a3SHLK5ZgX1LkqS91Pfhhn2R5HTg7cDJVbV9T/2npqYYGxvbpW1y\ncpLJycllmqEkSWvH9PQ009PTu7TNzs4u2fsPLSQkOQ34A+CUqrppb8Zs3ryZ8fHx5Z2YJElrVOuL\n88zMDBMTE0vy/kM53JBkEvgAcFrvxEdJkrTK9b2SkORQ4NnA3JUNh/cuZ/xGVX05yQXAM6rqdb3+\npwOXA78MfCbJ+t64R6rqoX0tQJIkLY9BVhKOBj4HbKG7T8KFwAxwfm/7BmDjvP5vBA4ELga+Mu/n\ndwabsiRJGoZB7pPwCXYTLqrqzAWvXzrAvCRJ0grz2Q2SJKnJkCBJkpoMCZIkqcmQIEmSmgwJkiSp\nyZAgSZKaDAmSJKnJkCBJkpoMCZIkqcmQIEmSmgwJkiSpyZAgSZKaDAmSJKnJkCBJkpoMCZIkqcmQ\nIEmSmgwJkiSpyZAgSZKaDAmSJKnJkCBJkpoMCZIkqcmQIEmSmgwJkiSpyZAgSZKaDAmSJKnJkCBJ\nkpoMCZIkqanvkJDk2CTXJrkvyc4kJ+/FmJ9MsiXJjiRfSPK6waYrSZKGZZCVhEOB24BzgNpT5yTP\nBP4M+DhwJPBe4P1JXjbAviVJ0pAc1O+AqroOuA4gSfZiyC8Cd1XVm3qv70zyEmAK+Fi/+5ckScMx\njHMSfhy4cUHb9cAxQ9i3JEka0DBCwgbggQVtDwBPTfKkIexfkiQNwKsbJElSU9/nJAzgfmD9grb1\nwENV9a3dDZyammJsbGyXtsnJSSYnJ5d2hpIkrUHT09NMT0/v0jY7O7tk7z+MkPAp4KQFbSf02ndr\n8+bNjI+PL8ukJEla61pfnGdmZpiYmFiS9x/kPgmHJjkyyVG9psN7rzf2tl+Q5Ip5Qy7t9Xl3kiOS\nnAOcAly0z7OXJEnLZpBzEo4GPgdsobtPwoXADHB+b/sGYONc56q6B3g58FN091eYAt5QVQuveJAk\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb4be55bb90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bins, hist = length_histogram\n",
"bins = np.array(bins)\n",
"width = 0.7 * (bins[1] - bins[0])\n",
"center = (bins[:-1] + bins[1:]) / 2\n",
"plt.bar(center, hist, align='center', width=width)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def modules_num(v):\n",
" if not v['json_dump']:\n",
" return 0\n",
" if not v['json_dump']['modules']:\n",
" return 0\n",
" return len(v['json_dump']['modules'])\n",
"\n",
"num_histogram = dataset\\\n",
".filter(dataset['product'] == 'Firefox').rdd\\\n",
".map(modules_num)\\\n",
".histogram(10)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"([0.0,\n",
" 102.1,\n",
" 204.2,\n",
" 306.29999999999995,\n",
" 408.4,\n",
" 510.5,\n",
" 612.5999999999999,\n",
" 714.6999999999999,\n",
" 816.8,\n",
" 918.9,\n",
" 1021],\n",
" [471835, 1005288, 93142, 9267, 122, 42, 20, 12, 11, 10])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"num_histogram"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb4bc1f60d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bins, hist = num_histogram\n",
"bins = np.array(bins)\n",
"width = 0.7 * (bins[1] - bins[0])\n",
"center = (bins[:-1] + bins[1:]) / 2\n",
"plt.bar(center, hist, align='center', width=width)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12+"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment