Académique Documents
Professionnel Documents
Culture Documents
22061
Exercice 1 :
sc = spark.sparkContext
print('#################')
print('le nombre de ligne dans le fichier ')
print('**************************')
file_in = sc.textFile('romeoetjuliette.txt')
num_lines = file_in.count()
print('Number of lines in file : {}'.format(num_lines))
num_lines_rdd = sc.parallelize([num_lines])
print('**************************')
print('**************************')
print('**************************')
sc = spark.sparkContext
print('#################')
print('le nombre de ligne dans le fichier ')
print('**************************')
file_in = sc.textFile('romeoetjuliette.txt')
def split_function(line):
words = re.findall(r'\b\w+\b', line)
return words
words = file_in.flatMap(split_function)
num_words = words.count()
num_words_rdd = sc.parallelize([num_words])
num_words_rdd.saveAsTextFile("output/tp3/22061/exo1/Q2")
print('**************************')
print('**************************')
print('**************************')
Q3/ :
sc = spark.sparkContext
print('#################')
print('le nombre de ligne dans le fichier ')
print('**************************')
num_lines_with_romeo_rdd = sc.parallelize([num_lines_with_romeo])
num_lines_with_romeo_rdd.saveAsTextFile("output/tp3/22061/exo1/Q3
")
print('**************************')
print('**************************')
print('**************************')
sc = spark.sparkContext
print('#################')
print('**************************')
file_in = sc.textFile('romeoetjuliette.txt')
print('**************************')
print('**************************')
print('**************************')
print('#################')
print('Affichage des 10 premiers éléments avec numéro de ligne')
Exercice 2 :
Q1 :
print('**************************')
print('**************************')
print('**************************')
counts_rdd.saveAsTextFile("output/tp3/22061/exo2/Q2")
print('**************************')
print('**************************')
print('**************************')
# Filtrer les lignes pour ne garder que celles avec la note '1'
et compter leur nombre
rating_1_count = ratings_rdd.filter(lambda line:
line.split("::")[2] == '1').count()
print('**************************')
print('**************************')
print('**************************')
# Afficher le résultat
print("Nombre de films uniques évalués :", unique_movies_count)
unique_movies_count_rdd.saveAsTextFile("output/tp3/22061/exo2/Q4"
)
print('**************************')
print('**************************')
print('**************************')
results_rdd = sc.parallelize([
f"User ID: : {max_user[0]}",
f"Nombre d'évaluations: : {max_user[1]}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo2/Q5")
print('**************************')
print('**************************')
print('**************************')
print('*** The END ***')
Q6/ :
results_rdd = sc.parallelize([
f"User ID: : {max_user_5[0]}",
f"Nombre de notes '5' : {max_user_5[1]}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo2/Q6")
print('**************************')
print('**************************')
print('**************************')
Q7/ :
results_rdd = sc.parallelize([
"Film le plus souvent noté :",
f"User ID: : {max_movie[0]}",
f"Nombre de notes '5' : {max_movie[1]}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo2/Q7")
print('**************************')
print('**************************')
print('**************************')
# Afficher le résultat
print("Nombre de films qui sont des comédies :",
comedy_movies_count)
results_rdd = sc.parallelize([
f"ombre de films qui sont des comédies : {comedy_movies_count}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo2/Q8")
print('**************************')
print('**************************')
print('**************************')
ratings_rdd = sc.textFile("ratings.dat") \
.map(lambda line: (line.split('::')[1], 1)) \
.reduceByKey(lambda a, b: a + b)
results_rdd = sc.parallelize([
"Comédie avec le plus d'évaluations :",
f"Titre : {max_comedy[1][0]}",
f"Nombre d'évaluations : {max_comedy[1][1]}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo2/Q9")
print('**************************')
print('**************************')
print('**************************')
Q1/ :
def hemisphere(latitude):
latitude = latitude.strip('"') # Supprimer les guillemets
entourant la latitude
if latitude: # Vérifier si la latitude n'est pas vide après
suppression des guillemets
latitude = float(latitude) # Convertir en flottant
if latitude >= 0:
return "Northern Hemisphere"
else:
return "Southern Hemisphere"
else:
return "Invalid Latitude"
# Mapper chaque ligne à l'hémisphère correspondant
hemisphere_count_rdd = stations_rdd.map(lambda line:
(hemisphere(line.split(',')[6]), 1))
results_rdd.saveAsTextFile("output/tp3/22061/exo3/Q1")
print('**************************')
print('**************************')
print('**************************')
Q2/ :
results_rdd = sc.parallelize([
"Station avec le plus grand écart d'années :",
f"Identifiant de la station :
{station_with_max_years_diff[0].strip()}",
f"Nom de la station :
{station_with_max_years_diff[0].strip()}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo3/Q2")
print('**************************')
print('**************************')
print('**************************')
# Afficher le résultat
print("Le pays avec le plus de stations est :",
country_with_most_stations[0])
print("Nombre de stations :", country_with_most_stations[1])
# Sauvegarder les résultats
results_rdd = sc.parallelize([
f"Le pays avec le plus de stations est :
{country_with_most_stations[0]}",
f"Nombre de stations : {country_with_most_stations[1]}"
])
results_rdd.saveAsTextFile("output/tp3/22061/exo3/Q3")
print('**************************')
print('**************************')
print('**************************')
Q4/ :
# Afficher le résultat
print("Le nombre de pays possédant des stations météo est :",
num_countries_with_stations)
results_rdd.saveAsTextFile("output/tp3/22061/exo3/Q4")
print('**************************')
print('**************************')
print('**************************')
# Afficher le résultat
print("Le nombre de stations météo en Mauritanie est :",
num_stations_in_mauritania)
results_rdd.saveAsTextFile("output/tp3/22061/exo3/Q5")
print('**************************')
print('**************************')
print('**************************')