site:enseignement:master:bdle:tmes:tmejointure
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
site:enseignement:master:bdle:tmes:tmejointure [30/11/2018 00:23] – [Exercice 2 : Equi-jointure parallèle et répartie] hubert | site:enseignement:master:bdle:tmes:tmejointure [14/12/2018 16:18] (Version actuelle) – [Exercice 6 : Chemin le plus long] hubert | ||
---|---|---|---|
Ligne 99: | Ligne 99: | ||
return List(s.toString()).iterator | return List(s.toString()).iterator | ||
} | } | ||
+ | |||
+ | def affichePartitions[T: | ||
+ | |||
// Déterminer le nombre d' | // Déterminer le nombre d' | ||
Ligne 110: | Ligne 113: | ||
- | // Supprimer les données | + | // Supprimer les collections |
- | def cleanStorage() = { | + | def clearStorage() = { |
- | | + | spark.catalog.clearCache() |
- | spark.sparkContext.getPersistentRDDs.values.foreach(x => x.unpersist()) | + | |
- | println(s" | + | |
} | } | ||
Ligne 178: | Ligne 179: | ||
<code scala> | <code scala> | ||
- | val vit = sc.parallelize(a, | + | val vit = spark.sparkContext.parallelize(a, |
// afficher les partitions | // afficher les partitions | ||
Ligne 377: | Ligne 378: | ||
) | ) | ||
- | val sport2 = sc.parallelize(sport1, | + | val sport2 = spark.sparkContext.parallelize(sport1, |
// afficher les partitions | // afficher les partitions | ||
Ligne 451: | Ligne 452: | ||
yagoParObjet.persist.count | yagoParObjet.persist.count | ||
+ | </ | ||
+ | Afficher un extrait des données pour les sprinter (les personnes dont le sujet contient sprinter) : | ||
+ | <code scala> | ||
+ | val yagoSprinter = yago.where(" | ||
+ | affichePartitions(yagoSprinter) | ||
</ | </ | ||
- | Afficher un extrait des données pour les sprinters (les personnes dont le sujet contient | + | Est-ce que tous les triplets au sujet du sprinter |
+ | Combien de partitions faut-il lire pour trouver le genre et les nationalités de Percy_Williams | ||
<code scala> | <code scala> | ||
- | val yagoSprinter | + | |
- | yagoSprinter.rdd.mapPartitionsWithIndex(entete).take(8).foreach(println) | + | |
</ | </ | ||
- | Est-ce que tous les triplets au sujet du sprinter | + | /** |
- | Combien de partitions faut-il lire pour trouver la résidence et la nationalité d'Aaron Brown ? | + | sprinter Aaron Brown |
+ | val yagoSheela = yago.where(" | ||
+ | */ | ||
Remarque concernant le renommage d' | Remarque concernant le renommage d' | ||
Ligne 636: | Ligne 645: | ||
- | === Equi-jointure lorsque les attribut | + | === Equi-jointure lorsque les attributs |
Soit la requête R5 | Soit la requête R5 | ||
Ligne 688: | Ligne 697: | ||
===== Exercice 4 : Produit Cartésien | ===== Exercice 4 : Produit Cartésien | ||
- | Voir diapo 33: Calculer la similarité entre 2 utilisateurs de MovieLens | + | Voir diapo du cours : Calculer la similarité entre 2 utilisateurs de MovieLens ou 2 individus |
* Définir une fonction qui calcule la similarité de Jaccard entre 2 listes d' | * Définir une fonction qui calcule la similarité de Jaccard entre 2 listes d' | ||
Ligne 708: | Ligne 717: | ||
- | ===== Exercice 5 : Questions diverses | + | ===== Exercice 5 : Traitement itératif par partition et par groupe d' |
- | La methode zipWithIndex (numérotant les éléments d'une collection) existe pour un RDD mais pas pour un DataSet. | + | La methode zipWithIndex (numérotant les éléments d'une collection) existe pour un RDD mais pas pour un Dataset. |
Ecrire la fonction '' | Ecrire la fonction '' | ||
+ | Rmq: une solution consiste à utiliser mapPartitionsWithIndex pour connaitre la taille des partitions et parcourir une partition pour affecter les numéros consécutifs à chaque élément. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Exercice 6 : Chemin le plus long ===== | ||
+ | Pour les données de yago utilisées précédemment, | ||
+ | Un chemin doit être sans circuit (ou sans cycle : ne jamais repasser sur le même sujet). | ||
+ | Combien y a -t-il de chemin de longueur 2, 3 ,4 ? | ||
+ | Quelle est la longueur maximale ? | ||
+ | Montrer que votre solution est efficace. Expliquer ce que vous avez mis en oeuvre pour apporter plus d' | ||
site/enseignement/master/bdle/tmes/tmejointure.1543533792.txt.gz · Dernière modification : de hubert