Last active
April 9, 2023 05:15
-
-
Save mrocklin/e7b7b3a65f2835cda813096332ec73ca to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"http://dask.readthedocs.io/en/latest/_images/dask_horizontal.svg\"\n", | |
" align=\"right\"\n", | |
" width=\"40%\"\n", | |
" alt=\"Dask logo\">\n", | |
"\n", | |
"Custom Computations with `dask.delayed` and `for` loops\n", | |
"===========\n", | |
"\n", | |
"*Because the real world is a messy place*\n", | |
"\n", | |
"This example uses [dask.delayed](http://dask.pydata.org/en/latest/delayed.html) to construct a parallel [dask.dataframe](http://dask.pydata.org/en/latest/dataframe.html) from a nested directory of data stored in a custom format, [feather](https://github.com/wesm/feather). It is a good example of using dask.delayed to handle messy situations in the real world and then hand those situations off to dask.dataframe for clean processing." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Example: Hierarchically stored data in custom format\n", | |
"\n", | |
"* Hierarchical storage: Custom directory structure with filenames encoding columns\n", | |
"* Feather: New Dataframe format that came out two weeks ago" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### See contents of local directory\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2016-01-01 2016-01-09\t2016-01-17 2016-01-25\tdask.pdf\r\n", | |
"2016-01-02 2016-01-10\t2016-01-18 2016-01-26\tImperative-Feather.ipynb\r\n", | |
"2016-01-03 2016-01-11\t2016-01-19 2016-01-27\tmydask.png\r\n", | |
"2016-01-04 2016-01-12\t2016-01-20 2016-01-28\twork.py\r\n", | |
"2016-01-05 2016-01-13\t2016-01-21 2016-01-29\r\n", | |
"2016-01-06 2016-01-14\t2016-01-22 2016-01-30\r\n", | |
"2016-01-07 2016-01-15\t2016-01-23 2016-01-31\r\n", | |
"2016-01-08 2016-01-16\t2016-01-24 create.py\r\n" | |
] | |
} | |
], | |
"source": [ | |
"!ls " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### See contents of subdirectory, feather files named by symbol (like stocks)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"BV EX\tHXMW MNX PL SKHT UU XHV\r\n" | |
] | |
} | |
], | |
"source": [ | |
"!ls 2016-01-01" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Some symbol overlap in other directories" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"BV EX\tHXMW MNX PL PWU SKHT UU WNT XHV\r\n" | |
] | |
} | |
], | |
"source": [ | |
"!ls 2016-01-02" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Each file is a feather encoded dataframe (with toy data inside)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>-0.351246</td>\n", | |
" <td>-1.692870</td>\n", | |
" <td>-0.397125</td>\n", | |
" <td>0.384644</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>-1.423015</td>\n", | |
" <td>-0.745109</td>\n", | |
" <td>1.990852</td>\n", | |
" <td>-0.235062</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>-1.008925</td>\n", | |
" <td>0.196380</td>\n", | |
" <td>1.587710</td>\n", | |
" <td>-0.273950</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>0.605530</td>\n", | |
" <td>0.538377</td>\n", | |
" <td>0.159150</td>\n", | |
" <td>0.224017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>-0.647940</td>\n", | |
" <td>0.219201</td>\n", | |
" <td>0.939612</td>\n", | |
" <td>0.829770</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"0 -0.351246 -1.692870 -0.397125 0.384644\n", | |
"1 -1.423015 -0.745109 1.990852 -0.235062\n", | |
"2 -1.008925 0.196380 1.587710 -0.273950\n", | |
"3 0.605530 0.538377 0.159150 0.224017\n", | |
"4 -0.647940 0.219201 0.939612 0.829770" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import feather\n", | |
"df = feather.read_dataframe('2016-01-01/BV')\n", | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### We want to encode the filename and directory as column data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" <th>date</th>\n", | |
" <th>symbol</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>-0.351246</td>\n", | |
" <td>-1.692870</td>\n", | |
" <td>-0.397125</td>\n", | |
" <td>0.384644</td>\n", | |
" <td>2016-01-01</td>\n", | |
" <td>BV</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>-1.423015</td>\n", | |
" <td>-0.745109</td>\n", | |
" <td>1.990852</td>\n", | |
" <td>-0.235062</td>\n", | |
" <td>2016-01-01</td>\n", | |
" <td>BV</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>-1.008925</td>\n", | |
" <td>0.196380</td>\n", | |
" <td>1.587710</td>\n", | |
" <td>-0.273950</td>\n", | |
" <td>2016-01-01</td>\n", | |
" <td>BV</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>0.605530</td>\n", | |
" <td>0.538377</td>\n", | |
" <td>0.159150</td>\n", | |
" <td>0.224017</td>\n", | |
" <td>2016-01-01</td>\n", | |
" <td>BV</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>-0.647940</td>\n", | |
" <td>0.219201</td>\n", | |
" <td>0.939612</td>\n", | |
" <td>0.829770</td>\n", | |
" <td>2016-01-01</td>\n", | |
" <td>BV</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D date symbol\n", | |
"0 -0.351246 -1.692870 -0.397125 0.384644 2016-01-01 BV\n", | |
"1 -1.423015 -0.745109 1.990852 -0.235062 2016-01-01 BV\n", | |
"2 -1.008925 0.196380 1.587710 -0.273950 2016-01-01 BV\n", | |
"3 0.605530 0.538377 0.159150 0.224017 2016-01-01 BV\n", | |
"4 -0.647940 0.219201 0.939612 0.829770 2016-01-01 BV" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import pandas as pd\n", | |
"df.assign(date=pd.Timestamp('2016-01-01'), symbol='BV').head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### but we have lots of files, so we want to do it in parallel" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\u001b[01;34m.\u001b[00m\n", | |
"├── \u001b[01;34m2016-01-01\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-02\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-03\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-04\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-05\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── UU\n", | |
"│ └── WNT\n", | |
"├── \u001b[01;34m2016-01-06\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ └── UU\n", | |
"├── \u001b[01;34m2016-01-07\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-08\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-09\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ └── WNT\n", | |
"├── \u001b[01;34m2016-01-10\u001b[00m\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-11\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ └── WNT\n", | |
"├── \u001b[01;34m2016-01-12\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── PWU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-13\u001b[00m\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── PL\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-14\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-15\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ └── WNT\n", | |
"├── \u001b[01;34m2016-01-16\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-17\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-18\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-19\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ └── WNT\n", | |
"├── \u001b[01;34m2016-01-20\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── MNX\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-21\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ └── UU\n", | |
"├── \u001b[01;34m2016-01-22\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-23\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-24\u001b[00m\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PWU\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-25\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ └── PL\n", | |
"├── \u001b[01;34m2016-01-26\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-27\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-28\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── PL\n", | |
"│ ├── SKHT\n", | |
"│ └── UU\n", | |
"├── \u001b[01;34m2016-01-29\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── EX\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── SKHT\n", | |
"│ └── UU\n", | |
"├── \u001b[01;34m2016-01-30\u001b[00m\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── UU\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── \u001b[01;34m2016-01-31\u001b[00m\n", | |
"│ ├── BV\n", | |
"│ ├── HXMW\n", | |
"│ ├── MNX\n", | |
"│ ├── PL\n", | |
"│ ├── PWU\n", | |
"│ ├── SKHT\n", | |
"│ ├── WNT\n", | |
"│ └── XHV\n", | |
"├── create.py\n", | |
"├── dask.pdf\n", | |
"├── Imperative-Feather.ipynb\n", | |
"├── \u001b[01;35mmydask.png\u001b[00m\n", | |
"└── work.py\n", | |
"\n", | |
"31 directories, 234 files\n" | |
] | |
} | |
], | |
"source": [ | |
"!tree ." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### but no canned function exists for our use case :(" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"ename": "AttributeError", | |
"evalue": "'module' object has no attribute 'read_nested_directory_of_feather_files'", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-7-63ca6464b225>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mdask\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdataframe\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mdd\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mdd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_nested_directory_of_feather_files\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'.'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[1;31mAttributeError\u001b[0m: 'module' object has no attribute 'read_nested_directory_of_feather_files'" | |
] | |
} | |
], | |
"source": [ | |
"import dask.dataframe as dd\n", | |
"\n", | |
"dd.read_nested_directory_of_feather_files('.')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Fortunately we can use `dask.delayed` to create custom parallel computations\n", | |
"\n", | |
"The `dask.delayed` function turns a normal function call in normal code to instead produce a task in a task graph. Can create strange computations very easily with generic Python code." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"from dask import delayed\n", | |
"from glob import glob\n", | |
"import os\n", | |
"\n", | |
"lazy_dataframes = []\n", | |
"for directory in glob('2016-*'):\n", | |
" for symbol in os.listdir(directory):\n", | |
" filename = os.path.join(directory, symbol)\n", | |
" df = delayed(feather.read_dataframe)(filename)\n", | |
" df = delayed(pd.DataFrame.assign)(df, date=pd.Timestamp(directory),\n", | |
" symbol=symbol)\n", | |
" lazy_dataframes.append(df)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Value('assign-8ee86514-7230-4734-977d-7effa2499a0f')" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lazy_dataframes[0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAACPgAAAIgCAIAAACdgtJyAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE\nQVR4nOzdd2AU1f738ZNKCyUQigIiLQmCPxWuoQkhhCIgVZoIkSoWREURLBdF5Oq9SNELqIAgBFCK\niiIWWiAk9OYVSKG3SCAkoZM6zx/z3L3r7s7Z2c1uZjd5v/6C3ezMd86c89mzc7b4KIoiAAAAAAAA\nAAAAAG/ja3QBAAAAAAAAAAAAgDNY6AIAAAAAAAAAAIBXYqELAAAAAAAAAAAAXsm/OHe2devWEydO\nFOceAZROXbp0uf/++42uwmBnzpzZuHGj0VUA8Hply5YdPHhwYGCg0YUYjHksgOLBPFYwjwXgNmSs\nudzc3G+++ebu3btGFwKgRDEsaZVi5O9frOtqAEqtp556qjjDzTMNHjzY6PMAoIT49ttvjY404zGP\nBVA8mMcqzGMBuA0Za+7bb781+oQAKIGMStpifcWen5+/atWqgQMHFudOAZQ2AwcOzM/PN7oK4xUU\nFAwYMGD16tVGFwLAu/n4+BCqgnksgGLBPFbFPBaAO5CxFtTWUBTF6EIAlBwGJi2/0QUAAAAAAAAA\nAACvxEIXAAAAAAAAAAAAvBILXQAAAAAAAAAAAPBKLHQBAAAAAAAAAADAK7HQBQAAAAAAAAAAAK/E\nQhcAAAAAAAAAAAC8EgtdAAAAAAAAAAAA8EosdAEAAAAAAAAAAMArsdAFAAAAAAAAAAAAr8RCFwAA\nAAAAAAAAALwSC10AAAAAAAAAAADwSix0AQAAAAAAAAAAwCux0AUAAAAAAAAAAACvxEIXAAAAAAAA\nAAAAvJK/0QVA09mzZ+vVq1fMe/zxxx9v377dr1+/xo0be9TWPFN2dnaVKlUsbvSEA3dh57F7ODYb\nAfBSxo5f89F07dq1ypUrO/RwJx5SChUxHiU9RE/ncck5Mj8ETjqKmcuf9D2nD0vCwTOnOl7RdDp5\nzrHY5QnzfHgpz0wSa95Sp6PcNHhdEl8ltc2LqIivjAA3sRsmxX8tF0VBApcwJfMTXS1btpw4caI7\ntrxw4cJ33nmnQ4cOrVu3rlGjho+VkydPyrewf//+6OjoihUr3nvvvWPGjMnIyDDd9e9//9t8U9Om\nTXOuyMLCwtmzZzdt2jQoKOjRRx9dtWqVoijyh9y6deu1117r1KnTgw8++MYbb6hhHRkZ6cQBam1N\nTj12PUen1YAOVasoypdfftmzZ88333yzc+fO48ePv3btmuneixcvLl68eODAga1bt7b58Lt3706f\nPr1169bVqlVz4sDlJ0iyd+c6j9MtJj8c60bIysoaN27c1KlTX3rppSFDhpw/f97m4Vuca/VcDBgw\n4O233x49evTKlSt1NhQ8ijtSVz5ObZJ3QskIEg4Gl2s7p/loys/PnzFjRvv27S3iRcKJh5izjl95\nQxWF5Jw63aTmz8tJSUnWf+Dcc6v1ZiU9RHKXup3HHnvMx8enevXqWudIkoQ2D6GIJx0ezk3zWK2h\nrWf0ac187A5Are3b7cPyQeEE66yzGw5aR61/FzY58exmTs/w15pMuqpVnZh2OtcNJJ1T0oySKa5k\nnmC3cRx9ueTyPgz3cd/VA1G0/CzOXqQn8ZyLL8nE0rk5pyRsbd7l2msdKodmYloF629zR18sO3Gm\nitggFrTOrJ4uXcRXRvBkHnLRwOlNab3ok8yL7F5dFDomkJLhKZ/GF2Uk6ilVnht6Et7usUtmbpK9\n6wk0PQnsdDBaP8U7/aLJ+s8sGk3SRDov0pqz2zf0HIjBlGIkhFDPk7v17NnzH//4h8s3O3/+/AoV\nKuTl5WVlZYWGhgohZsyYseS/nnvuuQcffFC+hUOHDvXu3XvHjh0HDx4cMmSIEKJHjx7qXbm5ua1b\nt/7wvz766KPz5887V+f48eOffvrpuXPnjh8/vmzZskKIhQsXSv4+KyurdevWoaGhV65cMd145MiR\nhx56yNED1Nqa3N69e8uVK6enN2o1oKPVzp8/Xwhx6NAhRVEuXboUEBDQt29f8z/IzMwUQoSFhWlt\n4fbt28HBweY16z9wuyfI5t6d6zxOt5iewzFvhFu3bjVu3Hj69OnqXQsXLqxevfrZs2ctHmJ9rqdO\nnVqvXr3MzEz1wOvVqzdnzhydDaVlwIABAwYM0POXJVtxtoM7UtfuOLUg74SSEaQ4HlxOd04t5qPp\nzp07VatWdegJ2omHqKyHpLyhikhyTp1rUvPn5b59++7Zs8fiD5x7brXerKSHSO4y3063bt0k8y5J\nEmodgtMn3QnFNn/zcF49j5UMbZ2jz3rmY3cAyrcv78OSQeEE66zTGQ7WR61/F1ocfXazpmf425xM\nuqRVnZh2Ks52A0nn1GpGyRRXPk+QN44TL5ecbm3msSpvn8eaczo/XZuETtRpwYn4ksSCc3NOSdja\nvMu11zrM6ZyJyZ8d7La5cy+WHT1TLmkQE8mZ1dmli/jKSI6MtbBq1apiuzLsCRcNnN6U1os+u1NK\n+dVFuxNI+fCU5EDRR6K8VHlhehLe7rFLZm6SvesPNHkCOx2M1k/xRXzRJGk0SRPpvEhrQd43dB6I\nYmjSlsyFLjdp0qRJaGio+u+vv/7aIt2GDx/+/vvvy7cwc+bMW7duqf/Ozc2tXLlyUFCQ+t+lS5fO\nmzev6EWePn36qaeeMv33t99+ky/YKIrSv39/X1/fXbt2md/o3AFqbU0iMzPz7bffVhcO7f6xVgM6\nWq36ZopLly6p/61du7bpRJjYbbewsDDzmnUeuM4TZH2jc53H6RbTeTimRlDftJKSkmLaV3Bw8IgR\nI8z/2Ppcnzlzxt/f33yu88EHH5QvXz4jI8OJnmzC5FXl7e2gZ5yak3dCyQhSHAyuonROCfNIsYgX\nRx+uk834lTdUEWmdU6eb1Px52SbnnlutNyvpIZK7LLajdY4kSSg/BCdOunO8ff7mKl7dDlpD26HR\nZ9Hl7A5Au9t3blA4ymbW6Q8HPQPNodmso89uTldlcSpd1apOTDud6wbyR2k1o2SKK5kn2G0cR18u\nFaW1vX3+5iolrB2cyE/XJqFO8mxxIr4kE0sn5pySsNW6y7XXOizYjWI9zw6SjTj9YtnRM+WqBlFp\nnVmHunQRXxlJlLBsKbriXOhyB5dMq/RsSutFn54ppdbsWk9ESIanPAdcMhIlpcpzw27C6zl2ycxN\nsneHAk0SL04Ho/VTfNFfNKmsG03SRHou0lqw2zf0HIiKhS7vUL58ea1X/nfv3q1cufKxY8f0by03\nN7dChQpjx45VFKWgoOCBBx4ICgqKjo5+5513Tp486XSRO3bs+PPPP03/LSwsDAkJkQT9li1bhBDd\nunWTb1bnAercmnl5r776anZ2thNzF/MGdLTa7t27CyEWLFigKMrVq1eFEE888YTF3zi00KX/wHWe\nIPnenes8+ltM/+GYGqFLly5CiDt37pju6tSpU1BQUGFhoelIrc/19OnThRDm7wLYuXOnEOKjjz5y\ntCebY/Kq8vZ20DNOzdnthCYWY8HR4CpK55Qo5oUuPfErCQ3naJ1Tp5tU8rysFOG51WKzkh4i7zwW\n29FqakkSyg+Bha5iVmLawXxoOzT6LLqcfACq5Nt3YlDYP7y/spl1DoWD3YHm6GzW0Wc356pSrCaT\nLmlV56adznUD+aN0NqP5FFcyT5A3jhMvl4rS2t4+f3OVEtYOTuSnC5NQP3m2FDG+JBNLPXNOSdhq\n3eXaax3W5M2l89lBcq/TL5aLeKacbhBr5mfWoS7NQlex8faFLpdMq+xuSitMdM6LbF7fc+5yqPnw\n1D+Nd3ok6i9VkhvWCa/z2PVf4ZHsXR5o+htffzBaP8UX/UWTotFokibS33omdvuGngNRsdD1Pykp\nKX369Jk8efLTTz/dvn37w4cPq7cfPXq0c+fOb7311uuvv+7j43P9+nWbN+bn569atSomJqZdu3bq\nAwsLC2fOnDl48OCxY8cGBgaK/1q3bt2YMWPuvffe9PT0Pn36VKxY8dFHH/3Pf/5js6r169ePHTtW\nCFG5cuWxY8eOHTv2xo0b5n/www8/NG3a1O5RmBQUFEyePPnzzz9Xe1hWVtarr77aqVOnChUqCCEC\nAwOnTp1q+uNbt259/PHHw4cPf/nllyMiIj788MOCggLJ7eYKCwsrVarUpUsXrQaPiYkRQowePToi\nIiIoKKhVq1ZxcXHWf2ZxgFq71rk1k08++WT37t2KVbg42oDyaq2lpKTUr1+/QoUKe/bsee655yZO\nnGhxQhVbT0U5OTnvvPPOCy+8oHa5OnXqmGp29MBNtE6QZKHLoc6j9SgLFi0mORytRvjb3/4mhLh4\n8aJpI4MHDza/xea5Vr/Ly/xR6pfGmr+RQd5QNjF5VelsB89MXUU6Tm/cuDFt2rThw4e3aNEiOjpa\n3YjdTqiyHguSDm83ixSrzqnnISpJpKjD5OjRo126dKlcufJjjz1mmm1oxa/kITZpxa+kobR2rf+Q\n9WSvzia1+7ys2ItHm73I5mYlPUTrLpvb0TpHkiSUH4LkpGudFJtHbVeJWeApIu+dx5qTzwcsRp9W\nTNns4U7MS50YFDYPStKxbWadfGRJwtkmrTiVZKZDz2426cl8i8mkvFV1JrlLpp06u4H8UTqfUMyn\nuJJ5grxxnHi55GgfNsc8VuXt81iH8tPm2Jf3IkcvEWjd7lDiScad3acASSzIE8NEMnfVusu5ax02\nD9xmN5PHl1ZV+tvc6RfLkjOlJ+11Xt1y9KTLD8e5V0ZOzGzJWAs6F7o8NmydmFZp3S7ZlFaY6JwX\n2by+Z/f1uE2SvNK6aObQSLRJT6lahdlMeJ3HrvMKj2Tv1nc5Os/X2o7Oiwlff/219ZO+E1eZFI1G\n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\nai0oKIiPj1+2bNm3336bm5vbo0ePZ555pkePHnyaFkCJdPXq1eXLly9btuzgwYONGzceOnTo008/\n3bBhQ3fv9/r16999992yZcu2b99eo0aNp556auTIkc2aNXP3flFqsdAFt1i/fv0///nPxMTEtm3b\nxsTE9O/f35DX50ePHo2NjV26dGlmZuagQYOmTJnSqFGj4i8DAFyLjAUA9yFjAcDdbt++vXDhwlmz\nZl25ckVd34qKiir+dabc3NzffvstNjb2hx9+qFWr1oQJE8aMGcNnDgCUGMePH582bdqqVauqVq36\nzDPPDBs2rGnTpsVfRmZm5tq1a5ctW6ZOsCdNmtSzZ8/iLwMlHgtdcLGNGzf+4x//2L59e4cOHf7+\n97937NjR6IrEnTt3Fi5c+K9//evq1asjR46cOHHi/fffb3RRAOAMMhYA3IeMBQB3U5e4Pv744ytX\nrowaNWrSpEn33Xef0UWJs2fPfvTRR0uWLKlRo8bEiRNHjx5drlw5o4sCAOedPn36X//615IlS6pX\nrz5p0qTRo0fr/Nktt9qyZcv7778fHx/foUOHt99+u1OnTkZXhBJF1w8mA3rs3r27ZcuWXbt2DQgI\niI+Pj4uL84SrA0KIcuXKjR8//uTJk7Nmzfrpp59CQ0PHjh179epVo+sCAAeQsQDgPmQsALhbQUHB\n/Pnz69ev/+abb/br1+/kyZPz5s3zhFUuIUS9evU+++yzEydO9O7d+4033qhfv/7nn39eWFhodF0A\n4LArV66MGTMmNDT0l19+mTNnzsmTJ8eNG+cJq1xCiOjo6O3bt2/bts3X17dz586tW7feu3ev0UWh\n5GChCy6QkZExevTotm3blilTZufOnZs2bWrXrp3RRVkqU6bM888/f/z48blz565bty4sLGzhwoXM\nXAF4PjIWANyHjAWAYrB3796WLVu+/PLLgwYNOnXq1CeffFK7dm2ji7JUp06df//736dOnerfv/+4\nceNatWq1f/9+o4sCAL0KCws///zz8PDwn3766bPPPjt+/Phzzz0XGBhodF2WIiMjt2zZkpCQ4Ofn\n17p16+eeey4zM9PoolASsNCFIsnPz//nP/95//33b9q0ad26dfHx8a1btza6KJnAwMBnn3329OnT\n48aNGzduXPPmzRMTE40uCgBsI2MBwH3IWAAoBunp6QMHDmzZsmVISMixY8c+/fTTWrVqGV2UzD33\n3DN37txjx44FBwdHRETExMSkp6cbXRQA2JGQkPDII4+88sorL7300smTJ0ePHh0QEGB0UTJt27ZN\nSEhYt27dzz//3LBhw08++aSgoMDoouDdWOiC886ePRsZGfn2228PHz78999/96IfEixfvvx77723\na9eusmXLRkZGTp48OT8/3+iiAOAvyFgAcB8yFgCKwY8//tisWbNt27YtXrz4l19+ady4sdEV6RUa\nGvrrr78uXLjwl19++b//+78NGzYYXREA2JaXl/f6669HRkZWqFBh165d7733Xvny5Y0uSq+ePXv+\n/vvvTz311IQJE6Kios6fP290RfBiLHTBSevXr2/evHlWVtaePXvmzp1bpUoVoytyWPPmzXfu3Pnp\np59++umnHTp0uHDhgtEVAcD/R8YCgPuQsQDgbuqF1z59+jz++OMpKSkjRozw8fExuijH+Pj4jBo1\nKiUlJTo6umfPnpMmTeKNBQA8zblz59q3b//ZZ5/NmzcvMTHxkUceMboihwUHB8+fP3/37t2XL19u\n3rz5zz//bHRF8FYsdMFhd+7ciYmJ6dWr19ChQw8ePNiiRQujK3Ker6/vCy+8cOjQoVu3bjVt2nT1\n6tVGVwSgtCNjAcB9yFgAKAYnTpxo2bLl4sWL165dGxsbGxwcbHRFzqtaterKlSvXrFmzYMGCli1b\nnjx50uiKAOD/++abb5o1a5aTk3Po0KHnnnvO695PYO7RRx89fPjwkCFDevToMXbs2NzcXKMrgvdh\noQuOSUtLi46OXrduXWxs7CeffFK2bFmjK3KBsLCwhISEJ598cvDgwW+99Ra/7A3AKGQsALgPGQsA\nxeDXX39t2bJlQUHBzp07+/XrZ3Q5rvHkk08mJibm5OS0atVq48aNRpcDoLQrLCycNGnSkCFDBg0a\nlJCQEBoaanRFLlC2bNlPPvlkyZIlK1asiI6OvnTpktEVwcv4KIpidA3wGqmpqV27dq1YseK3337r\nRV+urd/y5cvHjBnTt2/fr776KjAw0OhyAJQuZCwAuA8ZCwDFYOnSpaNHjx4xYsSnn35aMt5PYO7O\nnTsvvPDCihUrFi9ePHToUKPLAVBK5ebmDhs27Keffvryyy8HDx5sdDmul5yc3K9fv5ycnN9++61R\no0ZGlwOvwSe6oFdCQkKrVq1CQ0N37dpVIq8OCCGGDh0aHx+/efPmLl26XLt2zehyAJQiZCwAuA8Z\n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\n9w0dOvSLL764fPnylClTTLffc889ly9ftvjj/Px8U87a/a8QIisrS92U3cPUSX1+YtoKlGZkrAkZ\nC8DlyFgTMhaA+7h2oYuwNcdCFwCV+jmqvLw8V22QsDWXm5tL2JZCfKKr1KlYseLNmzddtUiemZmZ\nlpaWmJi4aNGia9euCSH27t17/vx59V7Tkv7mzZvDw8MnTJhgeqDNu27fvi2EuHv3rvku3njjjZs3\nb547d65Ro0amG9u3b3/jxo0bN26Ybpk+fXr16tXPnDmj57+qK1euCCHatm1btDb4n+vXr/v6+pYv\nX95VGwTgdchYEzIWgMuRsSZkLAD3CQoKMs+oIiJszd24cUPr0xIASpWgoCAfH5/r16+7aoOErUlh\nYeHNmzcJ21KIha5SJyQkJD8/Pzs72yVb+/jjjytXrvziiy+GhYVNnTo1ODh4ypQp5cqVU+9dtGhR\nRkZGRkbGn3/+uXv3btPtNu86derU5MmThRBnz56dPXu2upgvhGjSpEl0dPSoUaPM9xsTEyOE2LVr\nl+mW8uXLV6pUyfSOAPl/VTt37vT19R00aJBLmkIIkZGRUaVKFT8/P1dtEIDXIWNNyFgALkfGmpCx\nANwnJCQkIyPDVVsjbM1lZGRUq1bNVVsD4L38/f0rV65M2KpcG7aZmZmFhYWEbSnk49pfGYXnO3jw\nYIsWLY4fP26+/O5y4eHhKSkpNnuX5C6bcnNzmzdvvnfvXot3mHbr1i0sLGzOnDlOF9mzZ8+aNWsu\nWrTI6S1YmD59+tKlS1NTU121QQBeh4w1IWMBuBwZa0LGAnCfyZMnb9q06cCBA27dS+kM24cffrhH\njx7Tp0931QYBeK+GDRuOGTNGXVJyn1IYtikpKeHh4YcPH37ooYdcskF4Cz7RVerUqVNHCHH27Fmj\nC9FrwYIFvXr1sv4ela+++mrDhg2XLl1ybrO7du1KTU2dNWtWkQv8n7Nnz9atW9eFGwTgdchYFRkL\nwB3IWBUZC8Ct6tSp40VJK7wtbNXnMgCoW7cuYSvcELZqqxK2pRALXaVOjRo1qlWrlpyc7Na9qN/N\navMHbCV3mdu2bVuzZs0aNWo0bdo086+ONalZs+a333776quv3rp1y9HyLl68OH369M2bN1eqVMnR\nx0okJSWFh4e7cIMAvA4ZK8hYAG5DxgoyFoD7NWnS5OrVq+ovprhPKQzbS5cuZWdnN2nSxFUbBODV\n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\n", | |
"text/plain": [ | |
"<IPython.core.display.Image object>" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from dask import visualize\n", | |
"visualize(*lazy_dataframes[:5])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Can manually construct graph further" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"303.17973331250477" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sums = [df.A.sum() for df in lazy_dataframes]\n", | |
"total = delayed(sum)(sums)\n", | |
"total.compute()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { |
Unable to load the notebook
click the raw button, copy all content into a new file named xxx.ipynb(opend by a text editor), and launch jupyter notebook. done
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Unable to load the notebook