Skip to content
Snippets Groups Projects
Commit 375f0f4e authored by Arnault's avatar Arnault
Browse files

README.md

parent 26f97299
No related branches found
No related tags found
2 merge requests!2AJout du plongeon pour Spark,!1Master
......@@ -113,7 +113,12 @@ Pour suprimer les lignes de commentaire. Ici on utilise l'op
d3 = d2.map(lambda u: u.split())
## formattage en (clé, valeur) avec clé=(Z0, T, M) et valeur=[PDF]
## formattage en (clé, valeur)
Avec comme choix de formattage:
- clé=(Z0, T, M)
- et valeur=[PDF]
d4 = d3.map(lambda u : ((int(u[0]), int(u[1]), int(u[2])), [float(z) for z in u[3:]]) )
......@@ -134,23 +139,21 @@ Vous pouvez visualisez ces donn
============================================================
Ici, les données de simulation que nous venons de préparer ne devront pas être "distribuées" au sens Spark puisqu'une distribution
basique signifierait un "partitionnement" alors que nous souhaitons ici partager toutes les PDF dans tous les workers qui vont produire
les galaxies.
basique signifierait un "partitionnement" alors que nous souhaitons ici partager l'intégralité des PDF dans chacun des workers qui vont produire les galaxies.
Pour cela nous allons utiliser une opération particulière **broadcast** qui enverra une copie de la structure de données en parallèle vers tous les workers.
## Récupération des données de simulation dans le monde Python:
dv = data.collect()
Mais pour accéder facilement à une PDF donnée, associée à une clé (Z0, T, V) on préfère utiliser un **dictionnaire**. Donc on va convertir les données liste (K, V) en un dictionnaire {K: V}:
Mais pour accéder facilement à une PDF donnée, associée à une clé (Z0, T, V) on préfère utiliser un **dictionnaire** python. Donc on va convertir les données liste (K, V) en un dictionnaire {K: V}:
d = {k: v for k, v in dv}
simulations = {k: v for k, v in dv}
## Envoi du dictionnaire vers tous les workers
sc.broadcast(d)
sc.broadcast(simulations)
============================================================
6) Troisième étape: Génération des galaxies
......@@ -170,10 +173,21 @@ Dans chacun des noeuds de calcul en utilisant l'
r2 = r1.map(lambda u: ((random.randint(0, 60), random.randint(0, 2), random.randint(0, 121)), 1))
## on ne va considérer que les tirages réellement associés à une PDF
## Sélection des tirages utiles
on ne va considérer que les tirages réellement associés à une PDF
r3 = r2.filter(lambda u : u in d)
## Visualisation du nombre de galaxies produites:
print r3.count()
==> ensuite on pourrait réellement appliquer la fonction de probabilité pour chaque clé
galaxies = r3.map(lambda u: generate(simulations[u]) )
... en écrivant la fonction **generate** mais ceci n'est pas l'objectif de cet exercice.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment