QCM Apache Spark Corrigé – Partie 6

QCM sur le framework Apache Spark avec des réponses pour la préparation des entretiens d’embauche, tests en ligne, examens et certifications. Ces questions et réponses sur le framework Apache Spark comprennent divers sujets tel que les bases du framework Apache Spark, Hadoop, MapReduce, Requêtes interactives, traitement en flux, ETL, Big Data, etc…. Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur le framework Apache Spark.
 
 

1. Laquelle des affirmations suivantes est VRAIE concernant Spark R?

A C’est le noyau de Spark

B Il permet aux utilisateurs d’exécuter des requêtes SQL/HQL sur Spark.

C Il s’agit d’une bibliothèque scalable du machine learning qui offre des performances.

D Il permet aux data scientists d’analyser de grands datasets et d’exécuter des tâches de manière interactive.

D
SparkR est une interface d’Apache Spark pour le langage R. Elle permet aux data scientists d’analyser de grands volumes de données, de manipuler des DataFrame et d’exécuter des traitements distribués de manière interactive en utilisant les fonctionnalités de Spark directement depuis R. Les autres propositions décrivent d’autres composants de Spark : le noyau de Spark (Spark Core), Spark SQL et MLlib.

 

 

2. Laquelle des affirmations suivantes est VRAIE concernant Spark MLlib?

A C’est le noyau de Spark

B Il permet aux utilisateurs d’exécuter des requêtes SQL/HQL sur Spark.

C Il s’agit d’une bibliothèque scalable du Machine Learning qui offre des avantages en termes d’efficacité.

D Il permet aux data scientists d’analyser de grands datasets et d’exécuter des tâches de manière interactive.

C
Spark MLlib est la bibliothèque de Machine Learning d’Apache Spark. Elle fournit des algorithmes distribués pour la classification, la régression, le clustering, la recommandation et la réduction de dimension, tout en offrant de bonnes performances grâce au traitement distribué. Les autres propositions décrivent respectivement Spark Core, Spark SQL et SparkR.

 

 

3. Laquelle des affirmations suivantes est VRAIE concernant Spark Shell?

A Il aide les applications Spark à s’exécuter facilement sur la ligne de commande du système.

B Il exécute/teste le code de l’application de manière interactive

C Il permet de lire de nombreux types de sources de données

D Toutes les réponses sont vraies

D
Spark Shell est un environnement interactif qui permet de développer, exécuter et tester du code Spark directement depuis la ligne de commande. Il facilite l’exécution des applications Spark, permet de manipuler des données provenant de nombreuses sources (CSV, JSON, Parquet, Hive, etc.) et offre un environnement pratique pour le développement, les tests et l’exploration de données.

 

 
 

4. Laquelle des affirmations suivantes est VRAIE concernant RDD?

A Nous pouvons faire fonctionner les RDD de Spark en parallèle avec une API de bas niveau.

B Les RDDs sont similaires à une table dans une base de données relationnelle

C Il permet le traitement d’une grande quantité de données structurées

D Il possède un moteur d’optimisation intégré

A
Les RDD (Resilient Distributed Datasets) constituent l’API de bas niveau d’Apache Spark et permettent d’effectuer des traitements distribués en parallèle sur un cluster. Ils offrent un contrôle précis des transformations et des actions, mais ne disposent pas d’un schéma ni d’un moteur d’optimisation intégré. Les DataFrame et Dataset sont les abstractions de plus haut niveau qui fournissent un schéma, un traitement des données structurées et bénéficient des optimisations de Catalyst Optimizer.

 

 

5. Les RDD sont tolérants aux pannes et immuables.

A Vrai

B Faux

C Peut-être

D Je ne sais pas!

A
Les RDD (Resilient Distributed Datasets) d’Apache Spark sont immuables, ce qui signifie qu’ils ne peuvent pas être modifiés après leur création. Toute transformation produit un nouveau RDD. Ils sont également tolérants aux pannes grâce au mécanisme de lignage (lineage), qui permet à Spark de reconstruire automatiquement les partitions perdues en cas de défaillance d’un nœud, sans avoir à recopier toutes les données.

 

 

6. Dans lequel des cas suivants devons-nous stocker les données en mémoire ?

A Algorithmes itératifs

B Outils interactifs d’exploration de données

C Les deux A et B

D Aucune de ces réponses

C
Le stockage des données en mémoire est particulièrement utile pour les algorithmes itératifs, qui réutilisent plusieurs fois les mêmes données (par exemple en machine learning), ainsi que pour les outils interactifs d’exploration de données, où des requêtes répétées doivent être exécutées rapidement. En conservant les données en mémoire, Apache Spark évite les accès répétés au disque et améliore considérablement les performances.

 

 
 

7. Quand Apache Spark évalue-t-il les RDD ?

A Lors d’une action

B Lors d’une transformation

C Les deux A et B

D Aucune de ces réponses

A
Apache Spark utilise une évaluation paresseuse (Lazy Evaluation). Les transformations (map(), filter(), flatMap(), etc.) ne sont pas exécutées immédiatement : elles construisent simplement un plan d’exécution. Ce n’est que lorsqu’une action (collect(), count(), reduce(), saveAsTextFile(), etc.) est appelée que Spark évalue les RDD, optimise le plan d’exécution et lance réellement les calculs sur le cluster.

 

 

8. Est-il possible d’atténuer les retards dans les RDD ?

A Oui

B Non

C Peut-être

D Je ne sais pas!

A
  • RDD: Il est possible d’atténuer les retards en utilisant une tâche de secours dans les RDD.
  • DSM: L’atténuation des retards est assez difficile à réaliser.
  • RDD: Comme il n’y a pas assez d’espace pour stocker les RDD dans la RAM, les RDD sont déplacés sur le disque.
  • DSM: Si la RAM manque d’espace de stockage, les performances diminuent dans ce type de systèmes.

 

 
 

9. La tolérance aux pannes dans les RDD est obtenue grâce aux éléments suivants:

A La nature immuable du RDD

B DAG (Directed Acyclic Graph)

C Évaluation paresseuse (Lazy-evaluation)

D Aucune de ces réponses

B
Comme nous le savons, le DAG conserve l’enregistrement des opérations appliquées sur le RDD. Il contient tous les détails des tâches exécutées sur les différentes partitions du RDD. Ainsi, en cas de panne ou de perte d’un RDD, nous pouvons le retrouver facilement à l’aide du graphe DAG.

Par exemple, si une opération est en cours et que tout à coup un RDD tombe en panne. Avec l’aide du gestionnaire de cluster, nous allons identifier la partition dans laquelle la perte se produit. Après cela, grâce au DAG, nous affecterons le RDD au même moment pour récupérer la perte de données.

Ce nouveau nœud fonctionnera sur la partition particulière de Spark RDD. Il s’exécutera également dans la série d’opérations, là où il devait être exécuté.

 

 

10. Qu’est-ce qu’une transformation dans Spark RDD ?

A Prend un RDD en entrée et produit un ou plusieurs RDD en sortie.

B Renvoie le résultat final des calculs RDD.

C Les moyens d’envoyer le résultat des exécuteurs au pilote.

D Aucune de ces réponses

A
Dans Apache Spark, une transformation est une opération qui prend un RDD existant en entrée et produit un nouveau RDD en sortie. Les transformations sont paresseuses (lazy) : elles ne déclenchent pas immédiatement l’exécution des calculs, mais construisent un plan d’exécution qui sera évalué uniquement lorsqu’une action (comme collect(), count() ou reduce()) sera appelée. Des exemples de transformations sont map(), filter(), flatMap(), union() et distinct().

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *