Dernière mise à jour : 25 Jan 2021
Les questions posées lors d’un entretien d’embauche de développeur big data ou de développeur apache spark peuvent entrer dans l’une des catégories suivantes en fonction des composants de l’écosystème Spark -.
En outre, afficher une expérience de projet dans les domaines suivants est essentiel –
|
Avec la demande croissante de l’industrie, pour traiter le big data à un rythme plus rapide -Apache Spark gagne un énorme élan quand il s’agit de l’adoption par les entreprises. Hadoop MapReduce a bien supporté le besoin de traiter les big data rapidement, mais il y avait toujours un besoin parmi les développeurs d’apprendre des outils plus flexibles pour suivre le marché supérieur des ensembles de big data de taille moyenne, pour le traitement des données en temps réel en quelques secondes.
Pour soutenir l’élan pour le traitement plus rapide des big data, il y a une demande croissante pour les développeurs Apache Spark qui peuvent valider leur expertise dans la mise en œuvre des meilleures pratiques pour Spark – pour construire des solutions de big data complexes. En collaboration avec et des experts de l’industrie du big data – nous avons dressé une liste des 50 meilleures questions et réponses d’entretien Apache Spark qui aideront les étudiants/professionnels à clouer un entretien de développeur big data et à combler l’offre de talents pour les développeurs Spark dans divers segments de l’industrie.
Cliquez ici pour afficher une liste de 50+ solutions de projets Big Data et Machine Learning résolus, de bout en bout (code réutilisable + vidéos)
Des entreprises comme Amazon, Shopify, Alibaba et eBay adoptent Apache Spark pour leurs déploiements de big data- la demande de développeurs Spark devrait croître de manière exponentielle. Les tendances de Google confirment une croissance de type « hockey » de l’adoption de Spark par les entreprises et de la sensibilisation des organisations de divers secteurs. Spark devient populaire en raison de sa capacité à gérer le streaming d’événements et à traiter les big data plus rapidement que Hadoop MapReduce. 2017 est le meilleur moment pour affiner vos compétences Apache Spark et poursuivre une carrière fructueuse en tant que professionnel de l’analyse de données, scientifique des données ou développeur de big data.
Ces projets Apache Spark vous aideront à développer des compétences qui vous rendront éligibles pour postuler à des rôles d’emploi de développeur Spark.
Top 50 Apache Spark Interview Questions and Answers
La préparation est très importante pour réduire l’énergie nerveuse à tout entretien d’emploi big data. Indépendamment de l’expertise et des compétences en big data que l’on possède, chaque candidat redoute l’entretien d’embauche big data en face à face. Bien qu’il n’y ait aucun moyen de prédire exactement les questions qui seront posées dans tout entretien d’embauche de développeur big data ou spark- ces questions et réponses d’entretien Apache spark pourraient vous aider à mieux vous préparer à ces entretiens.
1) Comparer Spark vs Hadoop MapReduce
Critères |
Hadoop MapReduce |
Apache Spark |
Mémoire |
Ne tire pas parti au maximum de la mémoire du cluster hadoop. | Economisons les données en mémoire avec l’utilisation de RDD’s. |
Utilisation du disque |
MapReduce est orienté disque. | Spark cache les données en mémoire et assure une faible latence. |
Traitement |
Seul le traitement par lot est pris en charge | Prise en charge le traitement en temps réel grâce au streaming spark. |
Installation |
Est lié à hadop. | N’est pas lié à hadop. |
Simplicité, flexibilité et performance sont les principaux avantages de l’utilisation de Spark par rapport à Hadoop.
- Spark est 100 fois plus rapide qu’Hadoop pour le traitement des big data car il stocke les données en mémoire, en les plaçant dans des bases de données distribuées résilientes (RDD).
- Spark est plus facile à programmer car il est livré avec un mode interactif.
- Il fournit une récupération complète en utilisant le graphique de lignage chaque fois que quelque chose va mal.
Référer Spark vs Hadoop
Cliquez ici pour voir 52+ solutions de projet résolues et réutilisables dans Big Data – Spark
2) Qu’est-ce que Shark?
La plupart des utilisateurs de données ne connaissent que SQL et ne sont pas bons en programmation. Shark est un outil, développé pour les personnes qui sont issues d’une base de données – pour accéder aux capacités de Scala MLib à travers Hive comme une interface SQL. L’outil Shark aide les utilisateurs de données à exécuter Hive sur Spark – en offrant une compatibilité avec le métastore, les requêtes et les données de Hive.
3) Citez quelques cas d’utilisation où Spark surpasse Hadoop en matière de traitement.
- Traitement des données de capteurs -Le « calcul en mémoire » d’Apache Spark fonctionne mieux ici, car les données sont récupérées et combinées à partir de différentes sources.
- Spark est préféré à Hadoop pour l’interrogation en temps réel des données
- Traitement des flux – Pour le traitement des journaux et la détection des fraudes dans les flux en direct pour les alertes, Apache Spark est la meilleure solution.
4) Qu’est-ce qu’un vecteur clairsemé ?
Un vecteur clairsemé a deux tableaux parallèles -un pour les indices et l’autre pour les valeurs. Ces vecteurs sont utilisés pour stocker les entrées non nulles afin d’économiser de l’espace.
5) Qu’est-ce qu’un RDD?
Les RDD (Resilient Distributed Datasets) sont une abstraction de base dans Apache Spark qui représente les données qui arrivent dans le système en format objet. Les RDDs sont utilisés pour les calculs en mémoire sur de grands clusters, de manière tolérante aux pannes. Les RDD sont des portions en lecture seule, des collections d’enregistrements, qui sont –
- Immuables – Les RDD ne peuvent pas être modifiés.
- Résilients – Si un nœud détenant la partition échoue, l’autre nœud prend les données.
Constituez un portefeuille de projets Big Data en travaillant sur des projets apache spark en temps réel
6) Expliquez les transformations et les actions dans le contexte des RDDs.
Les transformations sont des fonctions exécutées à la demande, pour produire un nouveau RDD. Toutes les transformations sont suivies d’actions. Certains exemples de transformations incluent map, filter et reduceByKey.
Les actions sont les résultats des calculs ou des transformations de RDD. Après l’exécution d’une action, les données du RDD repartent vers la machine locale. Quelques exemples d’actions incluent reduce, collect, first et take.
7) Quels sont les langages pris en charge par Apache Spark pour développer des applications big data ?
Scala, Java, Python, R et Clojure
8) Peut-on utiliser Spark pour accéder et analyser des données stockées dans des bases de données Cassandra ?
Oui, c’est possible si vous utilisez Spark Cassandra Connector.
9) Est-il possible d’exécuter Apache Spark sur Apache Mesos ?
Oui, Apache Spark peut être exécuté sur les clusters matériels gérés par Mesos.
10) Expliquez les différents gestionnaires de clusters dans Apache Spark
Les 3 différents gestionnaires de clusters pris en charge dans Apache Spark sont :
- YARN
- Apache Mesos -Dispose de riches capacités de planification des ressources et est bien adapté pour exécuter Spark avec d’autres applications. Il est avantageux lorsque plusieurs utilisateurs exécutent des shells interactifs parce qu’il réduit l’allocation de CPU entre les commandes.
- Déploiements Standalone – Bien adapté aux nouveaux déploiements qui ne font que fonctionner et sont faciles à configurer.
11) Comment Spark peut-il être connecté à Apache Mesos ?
Pour connecter Spark avec Mesos-
- Configurer le programme pilote spark pour se connecter à Mesos. Le paquet binaire de Spark doit être dans un emplacement accessible par Mesos. (ou)
- Installer Apache Spark dans le même emplacement que celui d’Apache Mesos et configurer la propriété ‘spark.mesos.executor.home’ pour pointer vers l’emplacement où il est installé.
12) Comment pouvez-vous minimiser les transferts de données lorsque vous travaillez avec Spark ?
Minimiser les transferts de données et éviter le brassage aide à écrire des programmes spark qui s’exécutent de manière rapide et fiable. Les différentes façons de minimiser les transferts de données lorsqu’on travaille avec Apache Spark sont :
- Utiliser la variable de diffusion- La variable de diffusion améliore l’efficacité des jointures entre les petits et les grands RDD.
- Utilisation des accumulateurs – Les accumulateurs aident à mettre à jour les valeurs des variables en parallèle pendant l’exécution.
- La façon la plus courante est d’éviter les opérations ByKey, repartition ou toute autre opération qui déclenche des shuffles.
13) Pourquoi est-il nécessaire d’utiliser des variables de diffusion lorsqu’on travaille avec Apache Spark ?
Ce sont des variables en lecture seule, présentes en cache mémoire sur chaque machine. Lorsque vous travaillez avec Spark, l’utilisation de variables de diffusion élimine la nécessité d’expédier des copies d’une variable pour chaque tâche, de sorte que les données peuvent être traitées plus rapidement. Les variables de diffusion aident à stocker une table de consultation à l’intérieur de la mémoire, ce qui améliore l’efficacité de la récupération par rapport à une consultation RDD ().
14) Est-il possible d’exécuter Spark et Mesos avec Hadoop ?
Oui, il est possible d’exécuter Spark et Mesos avec Hadoop en lançant chacun d’eux comme un service distinct sur les machines. Mesos agit comme un planificateur unifié qui affecte les tâches soit à Spark, soit à Hadoop.
15) Qu’est-ce que le graphique de lignage ?
Les RDD dans Spark, dépendent d’un ou plusieurs autres RDD. La représentation des dépendances entre RDDs est connue sous le nom de graphe de lignage. Les informations du graphe de lignage sont utilisées pour calculer chaque RDD à la demande, de sorte que chaque fois qu’une partie du RDD persistant est perdue, les données qui sont perdues peuvent être récupérées en utilisant les informations du graphe de lignage.
16) Comment pouvez-vous déclencher des nettoyages automatiques dans Spark pour gérer les métadonnées accumulées ?
Vous pouvez déclencher les nettoyages en définissant le paramètre ‘spark.cleaner.ttl’ ou en divisant les travaux de longue durée en différents lots et en écrivant les résultats intermédiaires sur le disque.
17) Expliquez les principales bibliothèques qui constituent l’écosystème Spark
- Spark MLib- Bibliothèque d’apprentissage automatique dans Spark pour les algorithmes d’apprentissage couramment utilisés comme le clustering, la régression, la classification, etc.
- Spark Streaming – Cette bibliothèque est utilisée pour traiter les données en streaming en temps réel.
- Spark GraphX – API Spark pour les calculs parallèles de graphes avec des opérateurs de base comme joinVertices, subgraph, aggregateMessages, etc.
- Spark SQL – Aide à exécuter des requêtes de type SQL sur les données Spark en utilisant des outils de visualisation ou de BI standard.
18) Quels sont les avantages de l’utilisation de Spark avec Apache Mesos ?
Il rend le partitionnement évolutif entre diverses instances Spark et le partitionnement dynamique entre Spark et d’autres cadres de big data.
19) Quelle est la signification de l’opération Sliding Window ?
Sliding Window contrôle la transmission de paquets de données entre divers réseaux informatiques. La bibliothèque Spark Streaming fournit des calculs fenêtrés où les transformations sur les RDD sont appliquées sur une fenêtre glissante de données. Chaque fois que la fenêtre glisse, les RDDs qui tombent dans la fenêtre particulière sont combinés et exploités pour produire de nouveaux RDDs du DStream fenêtré.
20) Qu’est-ce qu’un DStream?
Le DStream est une séquence de bases de données distribuées résilientes qui représentent un flux de données. Les DStreams peuvent être créés à partir de diverses sources comme Apache Kafka, HDFS et Apache Flume. Les DStreams ont deux opérations –
- Transformations qui produisent un nouveau DStream.
- Opérations de sortie qui écrivent des données dans un système externe.
21) Lors de l’exécution d’applications Spark, est-il nécessaire d’installer Spark sur tous les nœuds du cluster YARN ?
Spark n’a pas besoin d’être installé lors de l’exécution d’un travail sous YARN ou Mesos parce que Spark peut s’exécuter au-dessus des clusters YARN ou Mesos sans affecter aucune modification du cluster.
22) Qu’est-ce que le cadre Catalyst ?
Le cadre Catalyst est un nouveau cadre d’optimisation présent dans Spark SQL. Il permet à Spark de transformer automatiquement les requêtes SQL en ajoutant de nouvelles optimisations pour construire un système de traitement plus rapide.
23) Nommez quelques entreprises qui utilisent Apache Spark en production.
Pinterest, Conviva, Shopify, Open Table
24) Quelle bibliothèque spark permet un partage de fichiers fiable à la vitesse de la mémoire sur différents frameworks de cluster ?
Tachyon
Travaillez sur des projets intéressants de science des données en utilisant Spark pour construire un portefeuille de projets impressionnant !
25) Pourquoi BlinkDB est-il utilisé ?
BlinkDB est un moteur de requête pour exécuter des requêtes SQL interactives sur d’énormes volumes de données et rend les résultats des requêtes marqués par des barres d’erreur significatives. BlinkDB aide les utilisateurs à équilibrer la » précision des requêtes » avec le temps de réponse.
26) Comment pouvez-vous comparer Hadoop et Spark en termes de facilité d’utilisation ?
Hadoop MapReduce nécessite de programmer en Java, ce qui est difficile, bien que Pig et Hive le rendent considérablement plus facile. L’apprentissage de la syntaxe de Pig et Hive prend du temps. Spark dispose d’API interactives pour différents langages comme Java, Python ou Scala et inclut également Shark c’est-à-dire Spark SQL pour les amateurs de SQL – ce qui le rend comparativement plus facile à utiliser qu’Hadoop.
27) Quelles sont les erreurs courantes que les développeurs font lorsqu’ils exécutent des applications Spark ?
Les développeurs font souvent l’erreur de-
- Faire tourner le service web plusieurs fois en utilisant plusieurs clusters.
- Tout exécuter sur le nœud local au lieu de le distribuer.
Les développeurs doivent faire attention à cela, car Spark fait appel à la mémoire pour le traitement.
28) Quel est l’avantage d’un fichier Parquet ?
Le fichier Parquet est un fichier au format colonnaire qui permet –
- de limiter les opérations d’E/S
- de consommer moins d’espace
- de ne récupérer que les colonnes nécessaires.
29) Quelles sont les différentes sources de données disponibles dans SparkSQL ?
- Fichier Parquet
- JSON Datasets
- Tables Hive
30) Comment Spark utilise Hadoop ?
Spark a son propre calcul de gestion de cluster et utilise principalement Hadoop pour le stockage.
Pour la liste complète des projets Big Data résolus – CLIQUEZ ICI
31) Quelles sont les principales caractéristiques d’Apache Spark que vous aimez ?
- Spark fournit des options analytiques avancées comme les algorithmes de graphes, l’apprentissage automatique, le streaming de données, etc
- Il a des API intégrées dans plusieurs langages comme Java, Scala, Python et R
- Il a de bons gains de performance, car il aide à exécuter une application dans le cluster Hadoop dix fois plus vite sur le disque et 100 fois plus vite en mémoire.
32) Que comprenez-vous par Pair RDD ?
Des opérations spéciales peuvent être effectuées sur des RDD dans Spark en utilisant des paires clé/valeur et de tels RDD sont appelés Pair RDDs. Les Pair RDDs permettent aux utilisateurs d’accéder à chaque clé en parallèle. Ils disposent d’une méthode reduceByKey () qui collecte les données en fonction de chaque clé et d’une méthode join () qui combine différents RDD ensemble, en fonction des éléments ayant la même clé.
33) Lequel choisirez-vous pour un projet -Hadoop MapReduce ou Apache Spark ?
La réponse à cette question dépend du scénario de projet donné – car il est connu que Spark fait usage de la mémoire au lieu du réseau et des E/S de disque. Cependant, Spark utilise une grande quantité de RAM et nécessite une machine dédiée pour produire des résultats efficaces. Donc la décision d’utiliser Hadoop ou Spark varie dynamiquement avec les exigences du projet et le budget de l’organisation.
34) Expliquez les différents types de transformations sur les DStreams?
- Transformations sans état – Le traitement du lot ne dépend pas de la sortie du lot précédent. Exemples – map (), reduceByKey (), filter ().
- Transformations statiques- Le traitement du lot dépend des résultats intermédiaires du lot précédent. Exemples -Transformations qui dépendent de fenêtres glissantes.
35) Expliquez les cas d’utilisation populaires d’Apache Spark
Apache Spark est principalement utilisé pour
- l’apprentissage machine itératif.
- L’analyse et le traitement interactifs des données.
- Le traitement des flux
- Le traitement des données des capteurs
36) Apache Spark est-il adapté à l’apprentissage par renforcement ?
Non. Apache Spark ne fonctionne bien que pour les algorithmes d’apprentissage automatique simples comme le clustering, la régression, la classification.
37) Qu’est-ce que Spark Core ?
Il possède toutes les fonctionnalités de base de Spark, comme – la gestion de la mémoire, la reprise sur panne, l’interaction avec les systèmes de stockage, la planification des tâches, etc.
38) Comment peut-on supprimer les éléments avec une clé présente dans tout autre RDD ?
Utiliser la fonction subtractByKey ()
39) Quelle est la différence entre persist() et cache()
persist () permet à l’utilisateur de spécifier le niveau de stockage alors que cache () utilise le niveau de stockage par défaut.
40) Quels sont les différents niveaux de persistance dans Apache Spark ?
Apache Spark persiste automatiquement les données intermédiaires des différentes opérations de shuffle, cependant il est souvent suggéré aux utilisateurs d’appeler la méthode persist () sur le RDD au cas où ils prévoient de le réutiliser. Spark dispose de différents niveaux de persistance pour stocker les RDD sur disque ou en mémoire ou comme une combinaison des deux avec différents niveaux de réplication.
Les différents niveaux de stockage/persistance dans Spark sont –
- MEMOIRE_ONLY
- MEMOIRE_ONLY_SER
- MEMOIRE_ET_DISQUE
- MEMOIRE_ET_DISQUE_SER, DISK_ONLY
- OFF_HEAP
41) Comment Spark gère-t-il la surveillance et la journalisation en mode autonome ?
Spark dispose d’une interface utilisateur web pour surveiller le cluster en mode autonome qui affiche les statistiques du cluster et des travaux. La sortie du journal pour chaque travail est écrite dans le répertoire de travail des nœuds esclaves.
42) Apache Spark fournit-il le check pointing ?
Les graphiques de lignage sont toujours utiles pour récupérer les RDD après une défaillance mais cela prend généralement du temps si les RDD ont de longues chaînes de lignage. Spark dispose d’une API pour le check pointing, c’est-à-dire un drapeau REPLICATE pour persister. Cependant, c’est l’utilisateur qui décide des données à vérifier. Les points de contrôle sont utiles lorsque les graphiques de lignage sont longs et ont de larges dépendances.
43) Comment pouvez-vous lancer des travaux Spark à l’intérieur de Hadoop MapReduce?
Utilisant SIMR (Spark in MapReduce) les utilisateurs peuvent exécuter n’importe quel travail spark à l’intérieur de MapReduce sans avoir besoin de droits d’administrateur.
44) Comment Spark utilise Akka?
Spark utilise Akka essentiellement pour la planification. Tous les travailleurs demandent une tâche au maître après s’être inscrits. Le maître ne fait qu’attribuer la tâche. Ici, Spark utilise Akka pour la messagerie entre les travailleurs et les maîtres.
45) Comment pouvez-vous atteindre la haute disponibilité dans Apache Spark?
- Mise en œuvre de la récupération d’un seul nœud avec le système de fichiers local
- Utilisation de maîtres StandBy avec Apache ZooKeeper.
46) Hadoop utilise la réplication pour atteindre la tolérance aux pannes. Comment cela est-il réalisé dans Apache Spark ?
Le modèle de stockage des données dans Apache Spark est basé sur les RDDs. Les RDDs permettent d’atteindre la tolérance aux pannes grâce au lignage. RDD a toujours l’information sur la façon de construire à partir d’autres ensembles de données. Si une partition d’un RDD est perdue en raison d’une panne, le lignage aide à construire uniquement cette partition particulière perdue.
47) Expliquez les composants de base d’une application Spark distribuée.
- Driver- Le processus qui exécute la méthode main () du programme pour créer des RDD et effectuer des transformations et des actions sur eux.
- Executor -Les processus travailleurs qui exécutent les tâches individuelles d’un travail Spark.
- Cluster Manager-Un composant enfichable dans Spark, pour lancer les Executors et les Drivers. Le gestionnaire de cluster permet à Spark de fonctionner au-dessus d’autres gestionnaires externes comme Apache Mesos ou YARN.
48) Qu’entendez-vous par évaluation paresseuse ?
Spark est intellectuel dans la manière dont il opère sur les données. Lorsque vous dites à Spark d’opérer sur un ensemble de données donné, il écoute les instructions et en prend note, afin de ne pas oublier – mais il ne fait rien, sauf si on lui demande le résultat final. Lorsqu’une transformation comme map () est appelée sur un RDD, l’opération n’est pas exécutée immédiatement. Les transformations dans Spark ne sont pas évaluées tant que vous n’effectuez pas une action. Cela permet d’optimiser le flux global de traitement des données.
49) Définir un nœud travailleur.
Un nœud qui peut exécuter le code de l’application Spark dans un cluster peut être appelé nœud travailleur. Un nœud worker peut avoir plus d’un worker qui est configuré en définissant la propriété SPARK_ WORKER_INSTANCES dans le fichier spark-env.sh. Un seul worker est démarré si la propriété SPARK_ WORKER_INSTANCES n’est pas définie.
50) Qu’entendez-vous par SchemaRDD ?
Un RDD qui consiste en des objets de rangée (enveloppes autour de tableaux de base de chaînes ou d’entiers) avec des informations de schéma sur le type de données dans chaque colonne.
51) Quels sont les inconvénients de l’utilisation d’Apache Spark par rapport à Hadoop MapReduce ?
Apache spark n’est pas bien dimensionné pour les travaux intensifs en calcul et consomme un grand nombre de ressources système. La capacité in-memory d’Apache Spark est parfois un obstacle majeur pour le traitement rentable des grandes données. De plus, Spark possède son propre système de gestion de fichiers et doit donc être intégré à d’autres plateformes de données basées sur le cloud ou à apache hadoop.
52) Est-il nécessaire d’installer spark sur tous les nœuds d’un cluster YARN tout en exécutant Apache Spark on YARN ?
Non , ce n’est pas nécessaire car Apache Spark fonctionne au-dessus de YARN.
53) Qu’entendez-vous par mémoire d’exécuteur dans une application Spark ?
Chaque application spark a la même taille de tas fixe et un nombre fixe de cœurs pour un exécuteur spark. La taille du tas est ce qu’on appelle la mémoire de l’exécuteur Spark qui est contrôlée par la propriété spark.executor.memory de l’indicateur -executor-memory. Chaque application Spark aura un exécuteur sur chaque nœud de travail. La mémoire de l’exécuteur est essentiellement une mesure de la quantité de mémoire du nœud de travail que l’application utilisera.
54) Que fait le moteur Spark ?
Le moteur Spark planifie, distribue et surveille l’application de données à travers le cluster Spark.
55) Qu’est-ce qui rend Apache Spark bon pour les charges de travail à faible latence comme le traitement des graphes et l’apprentissage automatique ?
Apache Spark stocke les données en mémoire pour une construction de modèle et une formation plus rapides. Les algorithmes d’apprentissage automatique nécessitent de multiples itérations pour générer un modèle optimal résultant et, de la même manière, les algorithmes de graphes traversent tous les nœuds et les bords.Ces charges de travail à faible latence qui nécessitent de multiples itérations peuvent conduire à une augmentation des performances. Moins d’accès au disque et un trafic réseau contrôlé font une énorme différence quand il y a beaucoup de données à traiter.
56) Est-il nécessaire de démarrer Hadoop pour exécuter toute application Apache Spark ?
Démarrer Hadoop n’est pas obligatoire pour exécuter toute application spark. Comme il n’y a pas de stockage séparé dans Apache Spark, il utilise Hadoop HDFS mais ce n’est pas obligatoire. Les données peuvent être stockées dans le système de fichiers local, peuvent être chargées à partir du système de fichiers local et traitées.
57) Quel est le niveau de parallélisme par défaut dans apache spark ?
Si l’utilisateur ne spécifie pas explicitement alors le nombre de partitions sont considérées comme le niveau de parallélisme par défaut dans Apache Spark.
58) Expliquez le flux de travail commun d’un programme Spark
- La première étape d’un programme Spark consiste à créer des RDD d’entrée à partir de données externes.
- Utiliser diverses transformations RDD comme filter() pour créer de nouveaux RDD transformés basés sur la logique métier.
- persister() tout RDD intermédiaire qui pourrait devoir être réutilisé dans le futur.
- Lancer diverses actions RDD() comme first(), count() pour commencer le calcul parallèle , qui sera ensuite optimisé et exécuté par Spark.
59) Dans un programme spark donné, comment allez-vous identifier si une opération donnée est une transformation ou une action ?
On peut identifier l’opération en se basant sur le type de retour –
i) L’opération est une action, si le type de retour est autre que RDD.
ii) L’opération est une transformation, si le type de retour est le même que le RDD.
60) Quelle est selon vous une erreur courante que les développeurs d’apache spark font en utilisant spark ?
- Maintien de la taille requise des blocs de brassage.
- Les développeurs d’apache spark font souvent des erreurs avec la gestion des graphes acycliques dirigés (DAG).)
61) Supposons qu’il y ait un RDD nommé ProjectPrordd qui contient une énorme liste de chiffres. Le code spark suivant est écrit pour calculer la moyenne –
def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
Qu’est-ce qui ne va pas avec le code ci-dessus et comment allez-vous le corriger ?
La fonction moyenne n’est ni commutative ni associative. La meilleure façon de calculer la moyenne est d’abord de la sommer et ensuite de la diviser par le compte comme indiqué ci-dessous –
def sum(x, y):
return x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();
Cependant, le code ci-dessus pourrait conduire à un débordement si le total devient grand. Donc, la meilleure façon de calculer la moyenne est de diviser chaque nombre par le nombre et ensuite d’additionner comme indiqué ci-dessous –
cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);
Q. Disons que j’ai une énorme liste de chiffres dans un fichier dans HDFS. Chaque ligne a un numéro.Et je veux com
Questions d’entretien sur Spark SQL
1) Expliquez la différence entre Spark SQL et Hive.
- Spark SQL est plus rapide que Hive.
- Toute requête Hive peut facilement être exécutée dans Spark SQL mais l’inverse n’est pas vrai.
- Spark SQL est une bibliothèque alors que Hive est un framework.
- Il n’est pas obligatoire de créer un métastore dans Spark SQL mais il est obligatoire de créer un métastore Hive.
- Spark SQL infère automatiquement le schéma alors que dans Hive le schéma doit être explicitement déclaré….
Questions d’entretien sur le streaming Spark
1) Citez quelques sources à partir desquelles le composant de streaming Spark peut traiter des données en temps réel.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Citez quelques entreprises qui utilisent déjà le streaming Spark.
Uber, Netflix, Pinterest.
3) Quelle est la couche inférieure d’abstraction dans l’API Spark Streaming ?
DStream.
4) Que comprenez-vous par récepteurs dans Spark Streaming ?
Les récepteurs sont des entités spéciales dans Spark Streaming qui consomment des données provenant de diverses sources de données et les déplacent vers Apache Spark. Les récepteurs sont généralement créés par des contextes de streaming en tant que tâches à long terme sur divers exécuteurs et programmés pour fonctionner de manière circulaire, chaque récepteur prenant un seul cœur.
Nous invitons la communauté big data à partager les questions et les réponses les plus fréquemment posées à Apache Spark Interview, dans les commentaires ci-dessous – pour faciliter les entretiens d’embauche big data pour tous les professionnels de l’analyse potentiels.
5) Comment allez-vous calculer le nombre d’exécuteurs nécessaires pour effectuer un traitement en temps réel en utilisant Apache Spark ? Quels sont les facteurs à considérer pour décider du nombre de nœuds pour le traitement en temps réel ?
Le nombre de nœuds peut être décidé en étalonnant le matériel et en considérant de multiples facteurs tels que le débit optimal (vitesse du réseau), l’utilisation de la mémoire, les cadres d’exécution utilisés (YARN, Standalone ou Mesos) et en considérant les autres travaux qui sont exécutés dans ces cadres d’exécution avec spark.
6) Quelle est la différence entre Spark Transform dans DStream et map ?
La fonction tranform dans spark streaming permet aux développeurs d’utiliser les transformations Apache Spark sur les RDD sous-jacents pour le flux. La fonction map dans hadoop est utilisée pour une transformation d’élément à élément et peut être mise en œuvre en utilisant transform.Idéalement , map travaille sur les éléments de Dstream et transform permet aux développeurs de travailler avec les RDD du DStream. map est une transformation élémentaire alors que transform est une transformation RDD.
Check Out Top Scala Interview Questions for Spark Developers.