Je cours un assez simple, ou alors je pense, l'exercice, donc je dois faire quelque chose de vraiment stupide. Mais j'ai manqué d'options ... alors voici la question. J'utilise dask distribué pour charger des données à partir d'une table de parquet ruche/snappy/80files, 400M/lignes, 8 colonnes, dont, en désespoir de cause, je ne lis qu'une colonne et en calcule la somme, en vain. J'utilise des contraintes de mémoire pour l'utilisation de la mémoire forcée faible, mais ces limites sont ignorées.dask distribué grabing toute la mémoire disponible + échange
dask-worker tcp://192.168.33.233:8786 --memory-limit 2e9 --local-directory scratch --nprocs 2 --nthreads 4
en cours d'exécution sur un ordinateur portable
c=Client("192.168.33.233:8786")
Client
Scheduler: tcp://192.168.33.233:8787
Dashboard: http://192.168.33.233:8787
Cluster
Workers: 2
Cores: 8
Memory: 4.00 GB
ddf=dd.read_parquet(os.path.join(parquet_dir,"user_logs.parq"),columns=['num_100'])
%%time
ddf.num_100.sum().compute()
A ce stade, les travailleurs vont essayer de prendre toute la mémoire jusqu'à ce que les effondrements d'ordinateur et je reçois une erreur de mémoire
Voici une liste des packages et des versions installée.
paquets dans l'environnement à/home/julian/anaconda3/envs/WSM:
# flèche cpp 0.7.0 py35_2 Conda-Forge bkcharts 0,2 py35_0
eau de javel 1.5.0 py35_0
bokeh 0,12 .7 py35_0
certifi 28/02/2016 py35_0
cliquez sur 6,7 py35_0 Conda-Forge cloudpickle 0.4.0 py35_0
cycleur 0.10.0 py35_0
cython 0,27 py35_0 conda-forge dask 0.15.2 py35_0
dask-core 0.15.3 py_0 conda-forge dbus 01/10/20 0
décorateur 4.1.2 py35_0
distribué 1.18.1 py35_0
entrypoints 0,2. 3 py35_0
annonce 2.1.0 0
fastparquet 0.1.2 py35_0 conda-forge fontconfig 2.12.1 3
freetype 2.5.5 2
glib 2.50.2 1
gst-plugins-carte 1.8.0 0
gstreamer 1.8.0 0
heapdict 1.0.0 py35_0 conda-forge html5lib 0,9999999 py35_0
icu 54,1 0
ipykernel 4.6.1 py35_0
ipython 6.1.0 py35_0
ipython_genutils 0.2.0 py35_0
ipywidgets 6.0.0 py35_0
jedi 0.10.2 py35_2
jinja2 2.9.6 py35_0
jpeg 9b 0
jsonschema 2.6.0 py35_0
jupyter 1.0.0 py35_3
jupyter_client 5.1.0 py35_0
jupyter_console 5,2.0 py35_0
jupyter_core 4.3.0 py35_0
libffi 3.2.1 1
libgcc 5.2.0 0
libiconv 1,14 0
libpng 1.6.30 1
libsodium 1.0.10 0
libxcb 1,12 1
libxml2 2.9.4 0
llvmlite 0.20.0 py35_0
médaillon 0.2.0 py35_1
markupsafe 1,0 py35_0
matplotlib 2.0.2 np113py35_0
désaccorde 0.7.4 py35_0
MKL 2017.0.3 0
msgpack-python 0.4.8 py35_0 Conda-Forge nbconvert 5.2.1 py35_0
nbformat 4.4.0 py35_0
portable 5.0 0,0 py35_0
numba 0.35.0 np113py35_0
numpy 1.13.1 py35_0
openssl 1.0.2l 0
pandas 0.20.3 py35_0
pandocfilters 1.4.2 py35_0
parquet-cpp 1.3.0.pre 2 conda-forge partd 0.3.8 py35_0
path.py 10.3.1 py35_0
PCRE 8,39 1
pexpect 4.2.1 py35_0
pickleshare 0.7.4 py35_0
pépin 9.0.1 py35_1
prompt_toolkit 1.0.15 py35_0
psutil 5.3.1 py35_0 Conda-forge ptyprocess 0.5.2 py35_0
py 04/01/34 py35_0 conda-forge pyarrow 0.7.0 py35_1 conda-forge pygments 2.2.0 py35_0
pyparsing 2.2.0 py35_0
pyqt 5.6.0 py35_2
pytest 3.2.2 py35_1 conda-Forge python 3.5. 2 0
python-dateutil 2.6.1 py35_0
python-snappy 0.5.1 py35_0
pytz 2017,2 py35_0
PyYAML 3,12 py35_0
pyzmq 16.0.2 py35_0
qt 5.6.2 5
qtconsole 4.3.1 py35_0
readline 6.2 2
demandes 2.14.2 py35_0
setuptools 36.4.0 py35_1
simplegeneric 0.8.1 py35_1
sip 4,18 py35_0
six 1.10.0 py35_0
accrocheurs 1.1.6 0
sortedcontainers 1.5.7 py35_0 conda-forge sqlite 3,13.0 0
tblib 1.3.2 py35_0 conda-Forge terminado 0,6 py35_0
TestPath 0.3.1 py35_0
épargne 0.10.0 py35_0 conda-Forge tk 05/08/18 0
toolz 0.8.2 py35_0
tornade 4,5 .2 py35_0
traitlets 4.3.2 py35_0
wcwidth 0.1.7 py35_0
roue 0.29.0 py35_0
widgetsnbextension 3.0.2 py35_0
XZ 5.2.3 0
yaml 0.1.6 0
zeromq 4.1.5 0
zict 0.1.3 py_0 Conda-Forge zlib 1.2.11 0
Je crois qu'il y a une incompatibilité avec les versions des bibliothèques que j'utilise. L'un d'entre eux fuit. En utilisant HDF, cela n'arrive pas. J'ai essayé pyarrow en vain. Il y a quelques problèmes d'encodage UTF et ça ne marchera pas. Les limites de la mémoire fixe ne fonctionneront pas. Je fais probablement quelque chose de mal ici mais le plafonnement ne fonctionne pas comme je m'y attendais. –
Question stupide: cela fonctionne-t-il si vous exécutez la commande une seule fois, sans '%% time'? – mdurant
Je remarque que vous avez dask par défaut mais dask-core de conda-forge - c'est bizarre. – mdurant