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. Peut-on combiner les bibliothèques d’Apache Spark dans la même application, par exemple, MLlib, GraphX, SQL et DataFrames etc.
A Oui
B Non
C Peut-être
D Je ne sais pas!
A
Apache Spark est conçu comme une plateforme unifiée, ce qui permet de combiner plusieurs bibliothèques dans une même application. Par exemple, une application peut utiliser Spark SQL pour charger et interroger des données, les manipuler avec des DataFrame, entraîner un modèle avec MLlib, puis analyser des relations avec GraphX. Toutes ces bibliothèques s’appuient sur Spark Core et fonctionnent de manière intégrée.
2. Laquelle des affirmations suivantes est VRAIE concernant le RDD ?
A RDD est un paradigme de programmation
B RDD dans Apache Spark est une collection immuable d’objets.
C Il s’agit d’une base de données
D Aucune de ces réponses
B
Un RDD (Resilient Distributed Dataset) est la structure de données fondamentale d’Apache Spark. Il représente une collection distribuée, immuable et tolérante aux pannes d’objets, répartie sur plusieurs nœuds d’un cluster. Une fois créé, un RDD ne peut pas être modifié : toute transformation produit un nouveau RDD. Les autres propositions sont incorrectes, car un RDD n’est ni un paradigme de programmation ni une base de données.
3. Lequel des éléments suivants n’est pas une fonction de Spark Context dans Apache Spark ?
A Point d’entrée vers Spark SQL
B Pour accéder à divers services
C Pour définir la configuration
D Pour obtenir l’état actuel de l’application Spark
A
Cette affirmation est fausse, car SparkContext n’est pas le point d’entrée de Spark SQL. Depuis Spark 2.0, c’est SparkSession qui joue ce rôle. En revanche, SparkContext permet d’accéder aux différents services de Spark, de gérer la configuration de l’application et d’obtenir des informations sur son état d’exécution.
4. Quelles sont les caractéristiques de Spark RDD ?
A Calcul se fait en mémoire
B Évaluations paresseuses (Lazy Evaluation)
C Tolérance aux pannes
D Toutes les réponses sont vraies
D
Les RDD (Resilient Distributed Datasets) d’Apache Spark possèdent plusieurs caractéristiques importantes : ils favorisent le calcul en mémoire pour accélérer les traitements, utilisent une évaluation paresseuse (Lazy Evaluation) en différant l’exécution des transformations jusqu’à ce qu’une action soit appelée, et offrent une tolérance aux pannes grâce au mécanisme de lignage (lineage), qui permet de reconstruire automatiquement les partitions perdues. Ainsi, les propositions A, B et C sont toutes correctes.
5. Combien de Spark Context (SC) peuvent être actifs par JVM ?
A Plusieurs
B Un seul
C Indéterminé
D Aucune de ces réponses
B
Dans Apache Spark, un seul SparkContext peut être actif à la fois par JVM (Java Virtual Machine). Le SparkContext représente la connexion principale entre l’application et le cluster Spark. Si un autre SparkContext est créé alors qu’un premier est déjà actif, Spark génère une erreur. Depuis Spark 2.0, il est recommandé d’utiliser SparkSession, qui encapsule un unique SparkContext.
6. Combien de façons peut-on créer un RDD ?
A 1
B 2
C 3
D 4
C
Il y a trois façons pour créer un RDD dans Spark.
En parallélisant une collection déjà existante dans un programme pilote.
Référencer un ensemble de données dans un système de stockage externe (par exemple, HDFS, Hbase, système de fichiers partagés).
Créer un RDD à partir de RDD déjà existants.
7. Combien de tâches Spark exécute-t-il sur chaque partition ?
A N’importe quel nombre de tâches
B Une seule
C Indéterminé
D Aucune de ces réponses
B
Dans Apache Spark, une seule tâche (task) est exécutée par partition pour une étape (stage) donnée. Chaque partition d’un RDD ou d’un DataFrame est traitée indépendamment par une tâche, ce qui permet à Spark d’exécuter les traitements en parallèle sur plusieurs partitions réparties entre les différents nœuds du cluster.
8. Peut-on modifier les données du RDD?
A Oui
B Non
C Peut-être
D Je ne sais pas!
B
Les RDD (Resilient Distributed Datasets) sont immuables par nature dans Apache Spark. Une fois qu’un RDD est créé, son contenu ne peut pas être modifié. Pour obtenir des données différentes, il faut appliquer une ou plusieurs transformations (comme map(), filter() ou flatMap()), qui produisent un nouveau RDD sans modifier le RDD d’origine.
9. Lequel des éléments suivants n’est pas une transformation ?
A Flatmap
B Map
C Reduce
D Filter
C
Deux types d’opérations de Apache Spark RDD sont : les transformations et les actions. Une transformation est une fonction qui produit un nouveau RDD à partir des RDD existants, mais lorsque nous voulons travailler avec le dataset réel, c’est une action qui est exécutée. Lorsque l’action est déclenchée après le résultat, le nouveau RDD n’est pas formé comme une transformation.
Reduce est une action de Spark qui agrège un élément d’un dataset (RDD) en utilisant une fonction. Cette fonction prend deux arguments et en renvoie un.
10. Lequel des éléments suivants n’est pas une action ?
A collect()
B top()
C take(n)
D map
D
map() est une opération de transformation qui est utilisée pour appliquer la transformation sur chaque élément d’un RDD, d’un DataFrame et d’un Dataset et renvoie finalement un nouveau RDD/Dataset respectivement.
Les transformations telles que l’ajout d’une colonne, la mise à jour d’une colonne, etc. peuvent être effectuées à l’aide de map, la sortie des transformations map aura toujours le même nombre d’enregistrements qu’en entrée.