site:enseignement:master:bdle:annales
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:annales [21/11/2018 22:01] – [Données] amine | site:enseignement:master:bdle:annales [20/11/2019 07:57] (Version actuelle) – amine | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Recueil d' | ====== Recueil d' | ||
| ===== Partie MR et Spark ===== | ===== Partie MR et Spark ===== | ||
| + | ==== Novembre 2019 ==== | ||
| + | {{ : | ||
| + | ==== Septembre 2018 ==== | ||
| + | {{ : | ||
| ==== Novembre 2017 ==== | ==== Novembre 2017 ==== | ||
| - | ==== Exercice 2 : Algèbre Dataset de Spark | + | === Exercice 1 === |
| - | ===== Données | + | == Données == |
| - | < | + | <code bash> |
| + | nom: | ||
| + | nom: | ||
| + | nom: | ||
| + | nom: | ||
| + | </ | ||
| + | == Programme scala == | ||
| + | <code scala> | ||
| + | val data = sc.textFile(path+" | ||
| + | |||
| + | case class attribut(cle: | ||
| + | |||
| + | def parseElem(in: | ||
| + | val tmp = in.split(":" | ||
| + | | ||
| + | } | ||
| + | |||
| + | parseTuple(in: | ||
| + | |||
| + | val parsed = data.map(x=> | ||
| + | |||
| + | parsed.collect.foreach(println) | ||
| + | |||
| + | case class attribut(cle: | ||
| + | |||
| + | def parseElem(in: | ||
| + | val tmp = in.split(":" | ||
| + | | ||
| + | } | ||
| + | |||
| + | def parseTuple(in: | ||
| + | |||
| + | |||
| + | |||
| + | val parsed = data.map(x=> | ||
| + | |||
| + | /*non posée*/ | ||
| + | def mergeListAttributes(lat1: | ||
| + | ... | ||
| + | } | ||
| + | |||
| + | |||
| + | val synthese = parsed.reduce(mergeListAttributes) | ||
| + | |||
| + | |||
| + | scala> parsed.collect.foreach(println) | ||
| + | List(attribut(age, | ||
| + | List(attribut(niveau, | ||
| + | List(attribut(age, | ||
| + | List(attribut(nom, | ||
| + | |||
| + | |||
| + | </ | ||
| + | === Exercice 2 : Algèbre Dataset de Spark === | ||
| + | == Données == | ||
| + | < | ||
| n1,p1,m1 | n1,p1,m1 | ||
| m1,p2,n2 | m1,p2,n2 | ||
| Ligne 14: | Ligne 73: | ||
| m1,isa,t2 | m1,isa,t2 | ||
| m2,isa,tt3 | m2,isa,tt3 | ||
| + | </ | ||
| + | == Requêtes == | ||
| + | |||
| + | < | ||
| + | // | ||
| + | case class Triple(sujet: | ||
| + | val triples = sc.textFile(someFile). | ||
| + | map(ligne => ligne.split("," | ||
| + | map(tab => Triple(tab(0), | ||
| + | |||
| + | /*Retourner le nombre de circuits (cycles) de longueur 3, ie les motifs de la forme x → y → z → x*/ | ||
| + | |||
| + | val t1 = triples.withColumnRenamed(" | ||
| + | |||
| + | val t2 = triples.withColumnRenamed(" | ||
| + | |||
| + | val t3 = triples.withColumnRenamed(" | ||
| + | |||
| + | val res = t1.join(t2, " | ||
| + | |||
| + | |||
| + | /*On étend l’ensemble de triplets avec des triplets de la forme n, isA, t indiquant que le noeud n a le type t. Pour simplifier, chaque n a un seul type t.*/ | ||
| + | |||
| + | /*Retourner les arcs p communs à au moins deux triplets n, p, n′ et m, p, m′ tels que n et m ont le même type tandis que n′ et m′ ont deux types distincts.*/ | ||
| + | |||
| + | val t_types = triples.where(" | ||
| + | |||
| + | val t_m = triples.where(" | ||
| + | |||
| + | val t_n = triples.where(" | ||
| + | |||
| + | val t_res = t_m.join(t_n, | ||
| + | join(t_types.withColumnRenamed(" | ||
| + | join(t_types.withColumnRenamed(" | ||
| + | join(t_types.withColumnRenamed(" | ||
| + | join(t_types.withColumnRenamed(" | ||
| </ | </ | ||
site/enseignement/master/bdle/annales.1542834061.txt.gz · Dernière modification : de amine
