QCM Apache Spark Corrigé – Partie 8

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. Apache Spark prend en charge __________

A Traitement par lots

B Traitement du flux de données en temps réel

C Traitement à base de graphes

D Toutes les réponses sont vraies

D
Apache Spark est un framework de traitement de données polyvalent qui prend en charge le traitement par lots (Batch Processing), le traitement des flux de données en temps réel (Spark Streaming / Structured Streaming) ainsi que le traitement de graphes grâce à GraphX. Il propose également des bibliothèques pour le SQL (Spark SQL) et le machine learning (MLlib), ce qui en fait une plateforme complète pour le traitement de données à grande échelle.

 

 

2. Lequel des énoncés suivants est FAUX pour l’opération map() ?

A Map transforme un RDD de longueur N en un autre RDD de longueur N.

B Dans l’opération Map, le développeur peut définir sa propre logique métier personnalisée.

C Elle s’applique à chaque élément du RDD et renvoie le résultat sous la forme d’un nouveau RDD.

D Map permet de retourner 0, 1 ou plusieurs éléments à partir de la fonction Map.

D
Cette affirmation est fausse, car l’opération map() applique une transformation à chaque élément d’un RDD et retourne exactement un élément en sortie pour chaque élément en entrée, produisant ainsi un nouveau RDD de même taille. En revanche, c’est l’opération flatMap() qui permet de retourner zéro, un ou plusieurs éléments pour chaque élément d’entrée, ce qui peut modifier la taille du RDD résultant.

 

 

3. FlatMap transforme un RDD de longueur N en un autre RDD de longueur M. Laquelle des propositions suivantes est vraie pour N et M?

A Soit N > M ou N < M

B Soit N < M ou N <= M

C Soit N > M ou N <= M

D Aucune de ces réponses

B
L’opération flatMap() applique une fonction à chaque élément d’un RDD et peut retourner zéro, un ou plusieurs éléments pour chaque élément d’entrée. Par conséquent, la taille du RDD résultant (M) peut être supérieure, égale ou inférieure à celle du RDD d’origine (N). Dans le cadre de cette question, la réponse attendue est B, car elle exprime que N < M (le RDD grandit) ou N ≤ M (le RDD conserve la même taille ou devient plus petit). En pratique, flatMap() n'impose aucune relation fixe entre N et M.

 

 
 

4. Lequel des éléments suivants est une transformation ?

A take(n)

B top()

C countByValue()

D mapPartitionWithIndex()

D
En Apache Spark, mapPartitionsWithIndex() est une transformation qui applique une fonction à chaque partition d’un RDD en fournissant également l’indice de la partition. Elle retourne un nouveau RDD après transformation. En revanche, take(n), top() et countByValue() sont des actions, car elles déclenchent l’exécution du calcul et renvoient un résultat au programme au lieu de produire un nouveau RDD.

 

 

5. Laquelle des propositions suivantes est une action ?

A Distinct()

B CountByValue()

C Union(dataset)

D Intersection(other-dataset)

B
En Apache Spark, countByValue() est une action qui déclenche l’exécution des transformations en attente et renvoie une collection contenant chaque valeur distincte du RDD associée à son nombre d’occurrences. En revanche, distinct(), union() et intersection() sont des transformations, car elles produisent un nouveau RDD sans lancer immédiatement le calcul.

 

 

6. Dans une fonction d’agrégation, peut-on obtenir un type de données différent du type de données d’entrée ?

A Oui

B Non

C Peut-être

D Je ne sais pas!

A
Dans Apache Spark, une fonction d’agrégation peut retourner un type de données différent de celui des données d’entrée. Par exemple, l’agrégation avg() appliquée à une colonne d’entiers (int) retourne généralement un double, tandis que d’autres fonctions comme count() renvoient un long. Le type de retour dépend donc de la fonction d’agrégation utilisée.

 

 
 

7. Dans laquelle des actions suivantes le résultat n’est pas renvoyé au pilote.

A countByValue()

B collect()

C foreach()

D top()

C
En Apache Spark, foreach() est une action qui exécute une fonction sur chaque élément d’un RDD ou d’un DataFrame, mais ne renvoie aucun résultat au pilote (driver). Le traitement est effectué directement sur les nœuds de calcul (executors). En revanche, countByValue(), collect() et top() renvoient leurs résultats au pilote après l’exécution des calculs.

 

 

8. La principale API de Machine Learning pour Spark est désormais l’API basée sur _____.

A DataFrame

B Dataset

C RDD

D Aucune de ces réponses

A
La principale API de Machine Learning d’Apache Spark est MLlib, qui est désormais basée sur les DataFrame. Cette API offre de meilleures performances, une intégration avec Spark SQL et un support des pipelines de machine learning. L’ancienne API basée sur les RDD est toujours disponible pour des raisons de compatibilité, mais elle est désormais considérée comme héritée.

 

 

9. Lequel des éléments suivants est un module pour le traitement des données structurées ?

A GraphX

B MLlib

C Spark SQL

D Spark R

C
Spark SQL est le module d’Apache Spark dédié au traitement des données structurées. Il permet de manipuler des DataFrame et des Dataset, d’exécuter des requêtes SQL et de lire des données provenant de nombreuses sources (Hive, Parquet, JSON, CSV, etc.). En revanche, GraphX est destiné au traitement des graphes, MLlib au machine learning et SparkR fournit une interface Spark pour le langage R.

 

 
 

10. SparkSQL traduit les commandes en codes. Ces codes sont traités par _________

A Des nœuds pilotes

B les nœuds de l’exécuteur

C Gestionnaire de cluster

D Aucun des éléments ci-dessus

B
Dans Apache Spark, Spark SQL traduit les requêtes SQL en un plan d’exécution optimisé grâce à Catalyst Optimizer. Une fois ce plan généré, les tâches sont envoyées aux nœuds de l’exécuteur (executors), qui exécutent les calculs en parallèle sur les données. Le pilote (driver) coordonne l’exécution, tandis que les executors réalisent effectivement le traitement des données.

 

 

Laisser un commentaire

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