0% ont trouvé ce document utile (0 vote)
424 vues6 pages

QCM Apache Spark

Transféré par

Manel
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
424 vues6 pages

QCM Apache Spark

Transféré par

Manel
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

QUIZZ 1

Questions
Essayez ces questions pratiques pour tester vos connaissances sur Apache Spark :

Question 1 :
Qu'est-ce qu'une tâche dans Spark ?
1. L'unité de travail effectuée pour chaque partition de données au sein d'une tâche est les
slots.
2. Une tâche est la deuxième plus petite entité exécutable dans Spark.
3. Les tâches présentant des dépendances larges peuvent être combinées en une seule tâche.
4. Une tâche est la plus petite composante exécutable dans Spark.
Réponse : 4. Une tâche est la plus petite composante exécutable dans Spark.

Question 2 :
Quel est le rôle d'un exécuteur dans Spark ?
1. L'exécuteur demande la transformation des opérations en un graphe orienté acyclique
(DAG).
2. Il ne peut y avoir qu'un seul exécuteur dans un environnement Spark.
3. Les exécuteurs exécutent les tâches qui leur sont assignées par le driver.
4. L'exécuteur planifie l'exécution des requêtes.
Réponse : 3. Les exécuteurs exécutent les tâches qui leur sont assignées par le driver.

Question 3 :
Quelle est l'une des tâches de l'exécution de requêtes adaptatives (Adaptive Query Execution) dans
Spark ?
1. Adaptive Query Execution collecte des statistiques d'exécution pour optimiser les plans de
requêtes.
2. Elle est responsable de la distribution des tâches aux exécuteurs.
3. Elle gère les opérations larges dans Spark.
4. Elle assure la tolérance aux pannes dans Spark.
Réponse : 1. Adaptive Query Execution collecte des statistiques d'exécution pour optimiser les plans
de requêtes.

Question 4 :
Quel est le niveau le plus bas dans la hiérarchie d'exécution de Spark ?
1. Tâche
2. Slot
3. Job
4. Stage
Réponse : 1. Tâche

Question 5 :
Laquelle de ces opérations est une action ?
1. [Link]()
2. [Link]()
3. [Link]()
4. [Link]()
Réponse : 1. [Link]()

Question 6 :
Quelle affirmation décrit les caractéristiques de l'API DataFrame ?
1. L'API DataFrame repose sur les RDD (Resilient Distributed Datasets) en arrière-plan.
2. L'API DataFrame est disponible en Scala, mais pas en Python.
3. L'API DataFrame ne contient pas de fonctions de manipulation des données.
4. L'API DataFrame distribue les tâches entre les exécuteurs.
Réponse : 1. L'API DataFrame repose sur les RDD en arrière-plan.

Question 7 :
Quelle déclaration est exacte à propos des exécuteurs ?
1. Les slots ne font pas partie d'un exécuteur.
2. Les exécuteurs peuvent exécuter des tâches en parallèle grâce aux slots.
3. Les exécuteurs sont toujours égaux aux tâches.
4. Un exécuteur distribue les tâches pour un job.
Réponse : 2. Les exécuteurs peuvent exécuter des tâches en parallèle grâce aux slots.

Question 8 :
Quelle déclaration est exacte concernant le driver dans Spark ?
1. Il existe plusieurs drivers dans une application Spark.
2. Les slots font partie d'un driver.
3. Les drivers exécutent les tâches en parallèle.
4. Le driver est responsable de la transformation des opérations en DAGs.
Réponse : 4. Le driver est responsable de la transformation des opérations en DAGs.

Question 9 :
Laquelle de ces opérations est une transformation large ?
1. [Link]()
2. [Link]()
3. [Link]()
4. [Link]()
5. [Link]()
Réponse : 3. [Link]()

Question 10 :
Quelle déclaration est correcte à propos de l'évaluation paresseuse (lazy evaluation) ?
1. L'exécution est déclenchée par des transformations.
2. L'exécution est déclenchée par des actions.
3. Les instructions sont exécutées au fur et à mesure qu'elles apparaissent dans le code.
4. Spark distribue les tâches entre différents exécuteurs.
Réponse : 2. L'exécution est déclenchée par des actions.

Question 11 :
Quelle affirmation est correcte concernant les DAGs dans Spark ?
1. Les DAGs sont évalués paresseusement.
2. Les DAGs peuvent être mis à l'échelle horizontalement dans Spark.
3. Les DAGs traitent les partitions de manière optimisée et distribuée.
4. Un DAG est composé de tâches pouvant s'exécuter en parallèle.
Réponse : 1. Les DAGs sont évalués paresseusement.

Question 12 :
Quelle déclaration est correcte concernant le mécanisme de tolérance aux pannes dans Spark ?
1. Spark assure la tolérance aux pannes via les DAGs.
2. C'est l'exécuteur qui garantit la tolérance aux pannes.
3. Grâce à la tolérance aux pannes, Spark peut recalculer tout RDD échoué.
4. Spark construit une couche de tolérance aux pannes au-dessus du système RDD classique, qui
n'est pas lui-même tolérant aux pannes.
Réponse : 3. Grâce à la tolérance aux pannes, Spark peut recalculer tout RDD échoué.

Question 13 :
Quel est le cœur du mécanisme de tolérance aux pannes dans Spark ?
1. Les RDD, qui sont tolérants aux pannes par conception.
2. Les partitions de données, car elles peuvent être recalculées.
3. Les DataFrames, qui sont immuables.
4. Les exécuteurs, qui assurent la tolérance aux pannes.
Réponse : 1. Les RDD, qui sont tolérants aux pannes par conception.

Question 14 :
Quelle affirmation est correcte à propos des jobs dans Spark ?
1. Les différents stages d'un job peuvent s'exécuter en parallèle.
2. Les différents stages d'un job ne peuvent pas s'exécuter en parallèle.
3. Une tâche est composée de plusieurs jobs.
4. Un stage est composé de plusieurs jobs.
Réponse : 1. Les différents stages d'un job peuvent s'exécuter en parallèle.

Question 15 :
Quelle affirmation est correcte à propos d'un shuffle dans Spark ?
1. Dans un shuffle, les données sont envoyées à plusieurs partitions pour être traitées.
2. Dans un shuffle, les données sont envoyées à une seule partition pour être traitées.
3. Un shuffle est une action qui déclenche une évaluation.
4. Dans un shuffle, toutes les données restent en mémoire pour être traitées.
Réponse : 1. Dans un shuffle, les données sont envoyées à plusieurs partitions pour être traitées.

Question 16 :
Qu'est-ce qui est exact à propos du gestionnaire de cluster (cluster manager) dans Spark ?
1. Le cluster manager est responsable de la gestion des ressources dans Spark.
2. Le cluster manager travaille directement avec les exécuteurs.
3. Le cluster manager crée des plans de requêtes.
4. Le cluster manager optimise les DAGs.
Réponse : 1. Le cluster manager est responsable de la gestion des ressources dans Spark.

Question 17 :
Complétez ce code pour effectuer les opérations demandées :
python
Copier le code
df.___1___ ("department").___2___ (sum("salary").alias("sum_salary"),
___3___ ("salary").alias("avg_salary"), sum("bonus").alias("sum_bonus"),
___4___("bonus").alias("max_bonus") )
1. groupBy
2. agg
3. avg
4. max
Réponse :
1. groupBy
2. agg
3. avg
4. max
Question 18 :
Quel est l'erreur dans ce code de jointure ?
python
Copier le code
[Link](employeeDf, "employeeID", how="broadcast")
1. Au lieu de join, il faut utiliser innerJoin.
2. broadcast n'est pas un type de jointure valide dans Spark.
3. salaryDf et employeeDf doivent être échangés.
4. Dans le paramètre how, il faut utiliser crossJoin au lieu de broadcast.
Réponse : 2. broadcast n'est pas un type de jointure valide dans Spark.

Question 19 :
Quel code redistribue le DataFrame df pour avoir 20 partitions au lieu de 5 ?
1. [Link](5)
2. [Link](20)
3. [Link](20)
4. [Link](5)
Réponse : 2. [Link](20)

Question 20 :
Quelle opération déclenche une évaluation ?
1. [Link]()
2. [Link]()
3. [Link]()
4. [Link]()
5. [Link]()
Réponse : 5. [Link]()

Question 21 :
Quel code renvoie les valeurs uniques pour les colonnes age et name dans le DataFrame df ?
1. [Link]('age').join([Link]('name'), col(state) == col('name'), 'inner').show()
2. [Link](col('age'), col('name')).agg({'*': 'count'}).show()
3. [Link]('age', 'name').distinct().show()
4. [Link]('age').unionAll([Link]('name')).distinct().show()
Réponse : 3. [Link]('age', 'name').distinct().show()
QUIZZ 2

Évaluation de vos connaissances sur le projet


Question 1
Quelles sont les techniques utilisées dans le prétraitement des données ? (sélectionnez tout ce qui
s'applique)
 Remplir les valeurs manquantes
 Exploration des données
 Entraînement du modèle
 Suppression des valeurs aberrantes
Réponse : Les techniques utilisées dans le prétraitement des données incluent :
 Remplir les valeurs manquantes
 Suppression des valeurs aberrantes
Question 2
Quel est le but de l'analyse exploratoire des données ?
 Construire un modèle d'apprentissage automatique
 Transformer les données
 Identifier des motifs et des tendances dans les données
 Nettoyer les données
Réponse : Le but de l'analyse exploratoire des données est d'identifier des motifs et des tendances
dans les donné[Link] 3
Quelle méthode dans les DataFrames PySpark est utilisée pour imprimer les types de données des
colonnes dans un DataFrame ?
 show()
 printSchema()
 describe()
 head()
Réponse : La méthode utilisée pour imprimer les types de données des colonnes
est printSchema().Question 4
Quel est le but de la méthode Train-Test split pour l'entraînement d'un modèle d'apprentissage
automatique ? (sélectionnez tout ce qui s'applique)
 Évaluer la performance d'un modèle sur des données non vues
 Prétraiter les données avant d'entraîner un modèle
 Gérer les valeurs manquantes dans les données
 Créer un modèle en utilisant uniquement un sous-ensemble des données disponibles
Réponse : Les objectifs de la méthode Train-Test split incluent :
 Évaluer la performance d'un modèle sur des données non vues
 Créer un modèle en utilisant uniquement un sous-ensemble des données disponibles
Question 5
Qu'est-ce que le surapprentissage (Overfitting) en apprentissage automatique ?
 Le modèle performe mal à la fois sur les données d'entraînement et de test
 Le modèle est trop simple et ne s'ajuste pas bien aux données
 Le modèle est trop simple et s'ajuste au bruit dans les données
 Le modèle performe bien sur les données d'entraînement mais mal sur les données de test
Réponse : Le surapprentissage se produit lorsque le modèle performe bien sur les données
d'entraînement mais mal sur les données de [Link] 6
Qu'est-ce que l'importance des caractéristiques (Feature Importance) en apprentissage
automatique ?
 Une mesure de la complexité d'un modèle
 Une mesure du nombre de caractéristiques dans un ensemble de données
 Une mesure de la contribution de chaque caractéristique à la variable cible
 Une mesure de la performance d'un modèle sur un ensemble de test
Réponse : L'importance des caractéristiques est une mesure de la contribution de chaque
caractéristique à la variable [Link] 7
Quel est le but de l'aire sous la courbe ROC ?
 C'est une métrique pour mesurer l'exactitude d'un modèle de régression linéaire
 C'est une métrique pour mesurer l'exactitude d'un modèle de classification binaire
 C'est une métrique pour mesurer l'erreur d'un modèle de classification binaire
 C'est un hyperparamètre pour un classificateur d'arbre de décision
Réponse : L'aire sous la courbe ROC est une métrique pour mesurer l'exactitude d'un modèle de
classification [Link] 8
Quel est le but du String Indexer ?
 Convertir les valeurs string dans des caractéristiques catégoriques en vecteurs
caractéristiques
 Convertir les valeurs string dans des caractéristiques catégoriques en minuscules
 Convertir les valeurs string dans des caractéristiques catégoriques en valeurs numériques
uniques
 Convertir les valeurs string dans des caractéristiques catégoriques en majuscules
Réponse : Le but du String Indexer est de convertir les valeurs string dans des caractéristiques
catégoriques en valeurs numériques [Link] 9
Quelles sont les étapes nécessaires pour préparer les caractéristiques numériques pour un modèle
d'apprentissage automatique PySpark ?
 Trouver les valeurs aberrantes
 Assemblage de vecteurs (Vector Assembling)
 Indexation de chaînes (String Indexing)
 Mise à l'échelle standard (Standard Scaling)
Réponse : Les étapes nécessaires incluent :
 Assemblage de vecteurs (Vector Assembling)
 Mise à l'échelle standard (Standard Scaling)
(Note: Trouver les valeurs aberrantes et indexation de chaînes peuvent également être pertinentes,
mais ne sont pas spécifiquement nécessaires pour toutes les caractéristiques numériques.)Question
10
Comment trouver le compte de chaque valeur unique dans une colonne catégorique dans un
DataFrame appelé df ?
 [Link](column_name).count()
 [Link](column_name)
 [Link](column_name)
 [Link](column_name)
Réponse : Pour trouver le compte de chaque valeur unique, on
utilise [Link](column_name).count().

Vous aimerez peut-être aussi