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. Spark SQL joue un rôle important dans l’optimisation des requêtes.
A Vrai
B Faux
C Peut-être
D Je ne sais pas!
A
Spark SQL joue un rôle essentiel dans l’optimisation des requêtes grâce au moteur Catalyst Optimizer, qui analyse et optimise automatiquement les plans d’exécution afin d’améliorer les performances. Il s’appuie également sur le moteur Tungsten pour optimiser la gestion de la mémoire et l’exécution des traitements, ce qui permet d’exécuter les requêtes SQL de manière plus rapide et plus efficace.
2. L’optimiseur est basé sur la programmation fonctionnelle en ______.
A R
B Python
C Scala
D Java
C
L’optimiseur de Spark SQL, appelé Catalyst Optimizer, est développé en Scala et repose sur les concepts de programmation fonctionnelle. Il utilise des transformations de règles pour analyser, réécrire et optimiser les plans de requêtes, ce qui permet d’améliorer automatiquement les performances d’exécution.
3. Catalyst Optimizer prend en charge l’optimisation basée sur les règles et sur les coûts.
A Vrai
B Faux
C Peut-être
D Je ne sais pas!
B
Catalyst Optimizer est principalement un optimiseur basé sur des règles (Rule-Based Optimizer). Il applique un ensemble de règles pour analyser et transformer les plans de requêtes en vue d’améliorer leur exécution. L’optimisation basée sur les coûts (Cost-Based Optimization – CBO) est une fonctionnalité distincte qui peut être utilisée avec Spark lorsqu’elle est activée et que des statistiques sont disponibles, mais elle ne constitue pas le mode de fonctionnement principal de Catalyst.
4. Lequel des éléments suivants n’est pas une phase d’exécution d’une requête SQL Spark ?
A Analyse
B Optimisation logique
C Planification physique
D Exécution
D
Les quatre phases d’une transformation que Catalyst réalise sont les suivantes :
Analyse: La première phase de l’optimisation de Spark SQL est l’analyse. Spark SQL commence avec une relation à traiter qui peut être de deux façons. Une forme sérieuse à partir d’un AST (abstract syntax tree) retourné par un parser SQL, et d’autre part à partir d’un objet DataFrame de l’API Spark SQL.
Optimisation logique: La deuxième phase est le plan d’optimisation logique. Dans cette phase, l’optimisation basée sur des règles est appliquée au plan logique. Il est possible d’ajouter facilement de nouvelles règles.
Plan physique: Dans la phase de plan physique, Spark SQL prend le plan logique et génère un ou plusieurs plans physiques en utilisant les opérateurs physiques qui correspondent au moteur d’exécution Spark. Le plan à exécuter est sélectionné à l’aide du modèle basé sur les coûts (comparaison entre les coûts des modèles).
Génération du code: La génération de code est la phase finale de l’optimisation de Spark SQL. Pour s’exécuter sur chaque machine, il est nécessaire de générer le bytecode du code Java.
5. Lequel des énoncés suivants n’est pas vrai pour Catalyst Optimizer ?
A Catalyst Optimizer utilise une fonction de correspondance des formes.
B Catalyst contient une arbre et l’ensemble des règles pour manipuler l’arbre.
C Il n’y a pas de bibliothèques spécifiques pour traiter les requêtes relationnelles.
D Il existe différents ensembles de règles qui traitent différentes phases de la requête.
C
Cette affirmation est fausse, car Catalyst Optimizer fournit justement des bibliothèques et des composants spécifiques pour représenter, analyser et optimiser les requêtes relationnelles. Il utilise des arbres de syntaxe et des règles de transformation (A, B et D sont donc vraies) pour effectuer les différentes phases d’analyse, d’optimisation logique et de planification des requêtes.
6. Dans la phase de planification physique de l’optimisation des requêtes, nous pouvons utiliser l’optimisation basée sur les coûts et l’optimisation basée sur les règles.
A Vrai
B Faux
C Peut-être
D Je ne sais pas!
A
Lors de la phase de planification physique dans Spark SQL, le moteur peut utiliser à la fois l’optimisation basée sur les règles (Rule-Based Optimization) et l’optimisation basée sur les coûts (Cost-Based Optimization) pour sélectionner le plan d’exécution le plus performant. Les règles permettent d’appliquer des transformations prédéfinies, tandis que l’optimisation basée sur les coûts exploite les statistiques disponibles afin de choisir la stratégie d’exécution la plus efficace.
7. Lequel des énoncés suivants n’est pas vrai pour DataFrame ?
A DataFrame dans Apache Spark est derrière RDD
B Nous pouvons construire un DataFrame à partir de différentes sources de données : fichier de données structuré, tables dans Hive, etc…
C L’interface de programmation d’application (API) de DataFrame est disponible dans plusieurs langages.
D Que ce soit en Scala ou en Java, nous représentons le DataFrame comme un ensemble de lignes de données.
A
Cette affirmation est fausse. En réalité, le DataFrame est construit au-dessus des RDD et offre une abstraction de plus haut niveau avec un schéma (colonnes et types de données). Il bénéficie des optimisations de Spark SQL et de Catalyst Optimizer, ce qui le rend généralement plus performant et plus simple à utiliser que les RDD. Les propositions B, C et D sont correctes.
8. Nous pouvons créer des DataFrame en utilisant __________
A Tables dans Hive
B Des fichiers de données structurés
C Des bases de données externes
D Toutes les réponses sont vraies
D
Dans Apache Spark, un DataFrame peut être créé à partir de nombreuses sources de données, notamment des tables Hive, des fichiers de données structurés (CSV, JSON, Parquet, ORC, etc.) et des bases de données externes via JDBC. Cette flexibilité permet de manipuler facilement des données provenant de différentes sources avec une API unifiée.
9. Laquelle des structures suivantes est la structure de données fondamentale de Spark ?
A DataFrame
B Dataset
C RDD
D Aucune de ces réponses
C
Le 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, répartie sur plusieurs nœuds du cluster. Les abstractions de plus haut niveau, telles que les DataFrame et les Dataset, sont construites au-dessus des RDD afin de simplifier le traitement des données et de bénéficier des optimisations de Spark SQL.
10. Lequel des éléments suivants organise les données dans une colonne nommée ?
A DataFrame
B Dataset
C RDD
D Aucune de ces réponses
A, B
Les DataFrame et les Dataset organisent les données sous forme de colonnes nommées, comme une table relationnelle. Un DataFrame est un Dataset de type Row et offre une représentation tabulaire des données, tandis qu’un Dataset ajoute en plus la sécurité de type (en Scala et Java). En revanche, un RDD est simplement une collection distribuée d’objets sans schéma ni noms de colonnes.