Top 50 domande e risposte per l’intervista su Spark per il 2021

Ultimo aggiornamento: 25 Gen 2021

Domande e risposte per il colloquio su Spark di Apache 2017

Le domande poste in un colloquio di lavoro per sviluppatori di big data o sviluppatori apache spark possono rientrare in una delle seguenti categorie in base ai componenti dell’ecosistema Spark -.

  • Domande per l’intervista di base di Spark
  • Domande per l’intervista di Spark SQL
  • Domande per l’intervista di Spark MLlib
  • Domande per l’intervista di Spark Streaming

Inoltre, è fondamentale mostrare esperienza di progetto nei seguenti ambiti –

  1. Progetti Spark Streaming
  2. Progetti Spark MLib
  3. Progetti Apache Spark
  4. PySpark

Con la crescente domanda dell’industria, di elaborare grandi dati ad un ritmo più veloce – Apache Spark sta guadagnando un enorme slancio quando si tratta di adozione aziendale. Hadoop MapReduce supportava bene la necessità di elaborare velocemente i big data, ma c’era sempre la necessità tra gli sviluppatori di imparare strumenti più flessibili per tenere il passo con il mercato superiore dei set di big data di medie dimensioni, per l’elaborazione dei dati in tempo reale in pochi secondi.

Per sostenere lo slancio verso una più veloce elaborazione dei big data, c’è una crescente domanda di sviluppatori Apache Spark che possano convalidare la loro esperienza nell’implementazione delle migliori pratiche per Spark – per costruire complesse soluzioni di big data. In collaborazione con gli esperti dell’industria dei big data, abbiamo curato un elenco delle 50 migliori domande e risposte per le interviste su Apache Spark che aiuteranno gli studenti/professionisti ad inchiodare un’intervista con uno sviluppatore di big data e a colmare l’offerta di talenti per gli sviluppatori Spark in vari segmenti dell’industria.

Clicca qui per visualizzare una lista di 50+ soluzioni risolte, end-to-end di Big Data e Machine Learning Project Solutions (codice riutilizzabile + video)

Aziende come Amazon, Shopify, Alibaba ed eBay stanno adottando Apache Spark per le loro implementazioni di big data – la richiesta di sviluppatori Spark è destinata a crescere esponenzialmente. Google Trends conferma la crescita “hockey-stick-like-growth” dell’adozione e della consapevolezza di Spark tra le organizzazioni di vari settori. Spark sta diventando popolare grazie alla sua capacità di gestire lo streaming di eventi e l’elaborazione di grandi dati più velocemente di Hadoop MapReduce. Il 2017 è il momento migliore per affinare le tue competenze Apache Spark e perseguire una carriera fruttuosa come professionista dell’analisi dei dati, scienziato dei dati o sviluppatore di big data.

Questi progetti Apache Spark ti aiuteranno a sviluppare competenze che ti renderanno idoneo a candidarti per ruoli lavorativi di sviluppatore Spark.

Top 50 Apache Spark Interview Questions and Answers

La preparazione è molto importante per ridurre l’energia nervosa a qualsiasi colloquio di lavoro sui big data. Indipendentemente dall’esperienza e dalle competenze in materia di big data che si possiedono, ogni candidato ha il terrore di affrontare il colloquio di lavoro sui big data. Anche se non c’è modo di prevedere esattamente quali domande verranno poste in qualsiasi colloquio di lavoro per sviluppatori di big data o spark – queste domande e risposte per l’intervista con Apache spark potrebbero aiutarvi a prepararvi meglio per queste interviste.

Domande e risposte per l'intervista a Spark

1) Confronta Spark vs Hadoop MapReduce

Spark vs Hadoop

Criteri

Hadoop MapReduce

Apache Spark

Memoria

Non sfrutta al massimo la memoria del cluster hadoop. Salva i dati in memoria con l’uso di RDD.

Uso del disco

MapReduce è orientato al disco. Spark memorizza i dati in memoria e assicura una bassa latenza.

Elaborazione

Solo l’elaborazione batch è supportata Supporta l’elaborazione in tempo reale attraverso lo streaming spark.

Installazione

È legato ad Hadoop. Non è legato a Hadoop.

Compara Spark vs Hadoop

Semplicità, flessibilità e prestazioni sono i principali vantaggi dell’uso di Spark rispetto a Hadoop.

  • Spark è 100 volte più veloce di Hadoop per l’elaborazione di grandi dati in quanto memorizza i dati in-memoria, collocandoli in Resilient Distributed Databases (RDD).
  • Spark è più facile da programmare in quanto è dotato di una modalità interattiva.
  • Fornisce un recupero completo utilizzando il grafico del lignaggio ogni volta che qualcosa va storto.

Riferisci Spark vs Hadoop
Clicca qui per vedere 52+ soluzioni di progetti risolti e riutilizzabili in Big Data – Spark

2) Cos’è Shark?

La maggior parte degli utenti dei dati conosce solo SQL e non è brava a programmare. Shark è uno strumento, sviluppato per le persone che provengono da un background di database – per accedere alle capacità di Scala MLib attraverso Hive come interfaccia SQL. Lo strumento Shark aiuta gli utenti dei dati a eseguire Hive su Spark – offrendo compatibilità con il metastore, le query e i dati di Hive.

3) Elenca alcuni casi d’uso in cui Spark supera Hadoop nell’elaborazione.

  1. L’elaborazione dei dati del sensore – l'”In-memory computing” di Apache Spark funziona meglio qui, poiché i dati vengono recuperati e combinati da fonti diverse.
  2. Spark è preferito a Hadoop per l’interrogazione in tempo reale dei dati
  3. Elaborazione dei flussi – Per l’elaborazione dei log e il rilevamento delle frodi nei flussi in diretta per gli allarmi, Apache Spark è la soluzione migliore.

4) Cos’è un vettore sparso?

Un vettore sparso ha due array paralleli – uno per gli indici e l’altro per i valori. Questi vettori sono usati per memorizzare voci non nulle per risparmiare spazio.

5) Cos’è un RDD?

Gli RDD (Resilient Distributed Datasets) sono astrazioni di base in Apache Spark che rappresentano i dati che arrivano nel sistema in formato oggetto. Gli RDD sono utilizzati per calcoli in-memory su grandi cluster, in modo tollerante ai guasti. Gli RDD sono porzioni in sola lettura, raccolte di record, che sono –

  • Immutabili – Gli RDD non possono essere alterati.
  • Resilienti – Se un nodo che tiene la partizione fallisce l’altro nodo prende i dati.

Costruisci un portfolio di progetti Big Data lavorando su progetti apache spark in tempo reale

6) Spiega le trasformazioni e le azioni nel contesto degli RDD.

Le trasformazioni sono funzioni eseguite su richiesta, per produrre un nuovo RDD. Tutte le trasformazioni sono seguite da azioni. Alcuni esempi di trasformazioni includono map, filter e reduceByKey.

Le azioni sono i risultati dei calcoli RDD o delle trasformazioni. Dopo l’esecuzione di un’azione, i dati di RDD tornano alla macchina locale. Alcuni esempi di azioni includono reduce, collect, first, e take.

7) Quali sono i linguaggi supportati da Apache Spark per lo sviluppo di applicazioni big data?

Scala, Java, Python, R e Clojure

8) È possibile utilizzare Spark per accedere e analizzare i dati memorizzati nei database Cassandra?

Sì, è possibile se si utilizza Spark Cassandra Connector.

9) È possibile eseguire Apache Spark su Apache Mesos?

Sì, Apache Spark può essere eseguito sui cluster hardware gestiti da Mesos.

10) Spiega i diversi cluster manager in Apache Spark

I 3 diversi cluster manager supportati in Apache Spark sono:

  • YARN
  • Apache Mesos -Ha ricche capacità di pianificazione delle risorse ed è adatto per eseguire Spark insieme ad altre applicazioni. E’ vantaggioso quando diversi utenti eseguono shell interattive perché ridimensiona l’allocazione della CPU tra i comandi.
  • Impianti Standalone – Ben si adatta a nuove implementazioni che funzionano solo e sono facili da impostare.

11) Come si può collegare Spark ad Apache Mesos?

Per collegare Spark con Mesos-

  • Configurare il programma driver spark per connettersi a Mesos. Il pacchetto binario di Spark dovrebbe essere in una posizione accessibile da Mesos. (o)
  • Installare Apache Spark nella stessa posizione di Apache Mesos e configurare la proprietà ‘spark.mesos.executor.home’ per puntare alla posizione in cui è installato.

Progetti Big Data Hadoop e Spark

12) Come si possono minimizzare i trasferimenti di dati quando si lavora con Spark? I vari modi in cui i trasferimenti di dati possono essere minimizzati quando si lavora con Apache Spark sono:

  1. Usando Broadcast Variable- Broadcast variable migliora l’efficienza dei join tra piccoli e grandi RDD.
  2. Utilizzare gli Accumulatori – Gli Accumulatori aiutano ad aggiornare i valori delle variabili in parallelo durante l’esecuzione.
  3. Il modo più comune è quello di evitare le operazioni ByKey, repartition o qualsiasi altra operazione che innesca lo shuffle.

13) Perché c’è bisogno di variabili broadcast quando si lavora con Apache Spark?

Sono variabili di sola lettura, presenti nella cache di memoria su ogni macchina. Quando si lavora con Spark, l’uso di variabili broadcast elimina la necessità di spedire copie di una variabile per ogni attività, così i dati possono essere elaborati più velocemente. Le variabili broadcast aiutano a memorizzare una tabella di lookup all’interno della memoria che migliora l’efficienza di recupero rispetto a un lookup RDD ().

14) È possibile eseguire Spark e Mesos insieme a Hadoop?

Sì, è possibile eseguire Spark e Mesos con Hadoop lanciando ognuno di questi come un servizio separato sulle macchine. Mesos agisce come uno scheduler unificato che assegna i compiti a Spark o Hadoop.

15) Cos’è il lineage graph?

Gli RDD in Spark, dipendono da uno o più altri RDD. La rappresentazione delle dipendenze tra gli RDD è nota come lineage graph. Le informazioni del lineage graph sono usate per calcolare ogni RDD su richiesta, in modo che ogni volta che una parte di RDD persistente viene persa, i dati persi possono essere recuperati usando le informazioni del lineage graph.

16) Come si possono attivare le pulizie automatiche in Spark per gestire i metadati accumulati?

Si possono attivare le pulizie impostando il parametro ‘spark.cleaner.ttl’ o dividendo i lavori di lunga durata in diversi lotti e scrivendo i risultati intermedi sul disco.

17) Spiega le principali librerie che costituiscono l’ecosistema Spark

  • Spark MLib- Libreria di apprendimento automatico in Spark per algoritmi di apprendimento comunemente usati come clustering, regressione, classificazione, ecc.
  • Spark Streaming – Questa libreria è usata per elaborare dati in streaming in tempo reale.
  • Spark GraphX – Spark API per il calcolo parallelo dei grafi con operatori di base come joinVertices, subgraph, aggregateMessages, ecc.
  • Spark SQL – Aiuta ad eseguire query SQL sui dati Spark usando strumenti standard di visualizzazione o BI.

18) Quali sono i vantaggi di usare Spark con Apache Mesos?

Rende scalabile il partizionamento tra varie istanze Spark e il partizionamento dinamico tra Spark e altri framework di big data.

19) Qual è il significato dell’operazione Sliding Window?

Sliding Window controlla la trasmissione di pacchetti di dati tra varie reti di computer. La libreria Spark Streaming fornisce calcoli a finestra in cui le trasformazioni su RDD sono applicate su una finestra scorrevole di dati. Ogni volta che la finestra scorre, gli RDD che cadono all’interno della particolare finestra vengono combinati e operati per produrre nuovi RDD del DStream finestrato.

20) Cos’è un DStream?

Discretized Stream è una sequenza di Resilient Distributed Databases che rappresentano un flusso di dati. I DStream possono essere creati da varie fonti come Apache Kafka, HDFS e Apache Flume. I DStreams hanno due operazioni –

  • Trasformazioni che producono un nuovo DStream.
  • Output che scrivono dati su un sistema esterno.

21) Quando si eseguono applicazioni Spark, è necessario installare Spark su tutti i nodi del cluster YARN?

Spark non ha bisogno di essere installato quando si esegue un lavoro sotto YARN o Mesos perché Spark può essere eseguito sopra i cluster YARN o Mesos senza influenzare alcun cambiamento al cluster.

22) Cos’è Catalyst framework?

Catalyst framework è un nuovo framework di ottimizzazione presente in Spark SQL. Permette a Spark di trasformare automaticamente le query SQL aggiungendo nuove ottimizzazioni per costruire un sistema di elaborazione più veloce.

23) Nomina alcune aziende che usano Apache Spark in produzione.

Pinterest, Conviva, Shopify, Open Table

24) Quale libreria Spark permette una condivisione affidabile dei file a velocità di memoria attraverso diversi framework cluster?

Tachyon

Lavora su interessanti progetti di scienza dei dati usando Spark per costruire un impressionante portfolio di progetti!

25) Perché viene usato BlinkDB?

BlinkDB è un motore di query per l’esecuzione di query SQL interattive su enormi volumi di dati e rende i risultati delle query contrassegnati da barre di errore significative. BlinkDB aiuta gli utenti a bilanciare la “precisione della query” con il tempo di risposta.

26) Come puoi paragonare Hadoop e Spark in termini di facilità d’uso?

Hadoop MapReduce richiede la programmazione in Java che è difficile, anche se Pig e Hive lo rendono notevolmente più facile. Imparare la sintassi di Pig e Hive richiede tempo. Spark ha delle API interattive per diversi linguaggi come Java, Python o Scala e include anche Shark cioè Spark SQL per gli amanti dell’SQL – rendendolo relativamente più facile da usare rispetto a Hadoop.

27) Quali sono gli errori comuni che gli sviluppatori fanno quando eseguono applicazioni Spark?

Gli sviluppatori spesso fanno l’errore di-

  • Colpire più volte il servizio web usando più cluster.
  • Eseguire tutto sul nodo locale invece di distribuirlo.

Gli sviluppatori devono fare attenzione a questo, perché Spark fa uso di memoria per l’elaborazione.

28) Qual è il vantaggio di un file Parquet?

Il file Parquet è un file in formato a colonne che aiuta a –

  • Limitare le operazioni di I/O
  • Consuma meno spazio
  • Pesca solo le colonne necessarie.

29) Quali sono le varie fonti di dati disponibili in SparkSQL?

  • Parquet file
  • JSON Datasets
  • Tabelle Hive

30) Come Spark usa Hadoop?

Spark ha il proprio cluster di calcolo per la gestione e usa principalmente Hadoop per lo stoccaggio.

Per la lista completa dei progetti Big Data risolti – CLICCA QUI

31) Quali sono le caratteristiche chiave di Apache Spark che ti piacciono?

  • Spark fornisce opzioni analitiche avanzate come algoritmi di grafici, apprendimento automatico, dati in streaming, ecc
  • Ha API integrate in diversi linguaggi come Java, Scala, Python e R
  • Ha buoni guadagni di prestazioni, in quanto aiuta a eseguire un’applicazione nel cluster Hadoop dieci volte più veloce su disco e 100 volte più veloce in memoria.

32) Cosa intendi per Pair RDD?

Speciali operazioni possono essere eseguite su RDD in Spark usando coppie chiave/valore e tali RDD sono chiamati Pair RDD. I Pair RDD permettono agli utenti di accedere ad ogni chiave in parallelo. Hanno un metodo reduceByKey () che raccoglie i dati basati su ogni chiave e un metodo join () che combina diversi RDD insieme, sulla base degli elementi che hanno la stessa chiave.

33) Quale sceglierai per un progetto -Hadoop MapReduce o Apache Spark?

La risposta a questa domanda dipende dallo scenario del progetto dato – come è noto Spark fa uso della memoria invece di rete e I/O su disco. Tuttavia, Spark utilizza una grande quantità di RAM e richiede una macchina dedicata per produrre risultati efficaci. Quindi la decisione di usare Hadoop o Spark varia dinamicamente con i requisiti del progetto e il budget dell’organizzazione.

34) Spiega i diversi tipi di trasformazioni su DStreams?

  • Trasformazioni Stateless – L’elaborazione del batch non dipende dall’output del batch precedente. Esempi – map (), reduceByKey (), filter ().
  • Trasformazioni statiche- L’elaborazione del batch dipende dai risultati intermedi del batch precedente. Esempi -Trasformazioni che dipendono da finestre scorrevoli.

35) Spiega i casi d’uso popolari di Apache Spark

Apache Spark è usato principalmente per

  • Il machine learning iterativo.
  • Analisi ed elaborazione interattiva dei dati.
  • Elaborazione del flusso
  • Elaborazione dei dati del sensore

36) Apache Spark è adatto all’apprendimento per rinforzo?

No. Apache Spark funziona bene solo per semplici algoritmi di apprendimento automatico come il clustering, la regressione, la classificazione.

37) Cos’è Spark Core?

Ha tutte le funzionalità di base di Spark, come – gestione della memoria, recupero degli errori, interazione con i sistemi di storage, pianificazione delle attività, ecc.

38) Come puoi rimuovere gli elementi con una chiave presente in qualsiasi altro RDD?

Usa la funzione subtractByKey ()

39) Qual è la differenza tra persist() e cache()

persist () permette all’utente di specificare il livello di storage mentre cache () usa il livello di storage predefinito.

40) Quali sono i vari livelli di persistenza in Apache Spark?

Apache Spark persiste automaticamente i dati intermedi da varie operazioni di shuffle, tuttavia è spesso suggerito che gli utenti chiamino il metodo persist () sull’RDD nel caso in cui abbiano intenzione di riutilizzarlo. Spark ha vari livelli di persistenza per memorizzare gli RDD su disco o in memoria o come una combinazione di entrambi con diversi livelli di replica.

I vari livelli di memorizzazione/persistenza in Spark sono –

  • MEMORY_ONLY
  • MEMORY_ONLY_SER
  • MEMORY_AND_DISK
  • MEMORY_AND_DISK_SER, DISK_ONLY
  • OFF_HEAP

41) Come Spark gestisce il monitoraggio e la registrazione in modalità Standalone?

Spark ha un’interfaccia utente basata sul web per monitorare il cluster in modalità standalone che mostra le statistiche del cluster e dei lavori. L’output del log per ogni lavoro viene scritto nella directory di lavoro dei nodi slave.

42) Apache Spark fornisce il check pointing?

I grafici di lineage sono sempre utili per recuperare gli RDD da un fallimento, ma questo richiede generalmente tempo se gli RDD hanno lunghe catene di lineage. Spark ha un’API per il check pointing, cioè un flag REPLICATE per persistere. Tuttavia, la decisione su quali dati fare il checkpoint – è decisa dall’utente. I checkpoint sono utili quando i grafici di lineage sono lunghi e hanno ampie dipendenze.

43) Come puoi lanciare lavori Spark all’interno di Hadoop MapReduce?

Usando SIMR (Spark in MapReduce) gli utenti possono eseguire qualsiasi lavoro Spark all’interno di MapReduce senza richiedere alcun diritto di amministrazione.

44) Come Spark usa Akka?

Spark usa Akka fondamentalmente per lo scheduling. Tutti i lavoratori richiedono un compito al master dopo la registrazione. Il master assegna semplicemente il compito. Qui Spark usa Akka per la messaggistica tra i lavoratori e i master.

45) Come puoi raggiungere l’alta disponibilità in Apache Spark?

  • Implementando il recupero del singolo nodo con il file system locale
  • Utilizzando gli StandBy Masters con Apache ZooKeeper.

46) Hadoop usa la replica per raggiungere la tolleranza agli errori. Come si ottiene questo in Apache Spark?

Il modello di archiviazione dei dati in Apache Spark è basato su RDD. Gli RDD aiutano a raggiungere la tolleranza d’errore attraverso la discendenza. RDD ha sempre le informazioni su come costruire da altri set di dati. Se una qualsiasi partizione di un RDD viene persa a causa di un guasto, il lineage aiuta a costruire solo quella particolare partizione persa.

47) Spiega i componenti principali di un’applicazione Spark distribuita.

  • Driver- Il processo che esegue il metodo main () del programma per creare RDD ed eseguire trasformazioni e azioni su di essi.
  • Executor- I processi worker che eseguono i singoli compiti di un lavoro Spark.
  • Cluster Manager-Un componente pluggable in Spark, per lanciare Executors e Drivers. Il cluster manager permette a Spark di funzionare sopra altri gestori esterni come Apache Mesos o YARN.

48) Cosa intendi per Lazy Evaluation?

Spark è intellettuale nel modo in cui opera sui dati. Quando dici a Spark di operare su un dato set di dati, ascolta le istruzioni e ne prende nota, in modo da non dimenticare – ma non fa nulla, a meno che non gli venga chiesto il risultato finale. Quando una trasformazione come map () viene chiamata su un RDD, l’operazione non viene eseguita immediatamente. Le trasformazioni in Spark non vengono valutate finché non si esegue un’azione. Questo aiuta a ottimizzare il flusso di lavoro complessivo di elaborazione dei dati.

49) Definire un nodo lavoratore.

Un nodo che può eseguire il codice dell’applicazione Spark in un cluster può essere chiamato nodo lavoratore. Un nodo lavoratore può avere più di un lavoratore che è configurato impostando la proprietà SPARK_ WORKER_INSTANCES nel file spark-env.sh. Solo un worker viene avviato se la proprietà SPARK_ WORKER_INSTANCES non è definita.

50) Cosa intendi per SchemaRDD?

Un RDD che consiste di oggetti riga (involucri intorno ad array di stringhe o interi di base) con informazioni di schema sul tipo di dati in ogni colonna.

51) Quali sono gli svantaggi dell’uso di Apache Spark rispetto a Hadoop MapReduce?

Apache Spark non scala bene per lavori intensivi di calcolo e consuma un gran numero di risorse di sistema. La capacità in-memoria di Apache Spark a volte è un grosso ostacolo per l’elaborazione efficiente dei big data. Inoltre, Spark ha un proprio sistema di gestione dei file e quindi deve essere integrato con altre piattaforme di dati basate su cloud o apache hadoop.

52) È necessario installare spark su tutti i nodi di un cluster YARN durante l’esecuzione di Apache Spark su YARN?

No, non è necessario perché Apache Spark viene eseguito sopra YARN.

53) Cosa intendi per memoria dell’esecutore in un’applicazione Spark?

Ogni applicazione Spark ha la stessa dimensione heap fissa e un numero fisso di core per un esecutore Spark. La dimensione dell’heap è quella che si riferisce alla memoria dell’esecutore Spark che è controllata con la proprietà spark.executor.memory del flag -executor-memory. Ogni applicazione spark avrà un executor su ogni nodo lavoratore. La memoria dell’esecutore è fondamentalmente una misura di quanta memoria del nodo lavoratore utilizzerà l’applicazione.

54) Cosa fa il motore Spark?

Il motore Spark pianifica, distribuisce e monitora l’applicazione dei dati attraverso il cluster Spark.

55) Cosa rende Apache Spark buono per carichi di lavoro a bassa latenza come l’elaborazione dei grafici e l’apprendimento automatico?

Apache Spark memorizza i dati in-memoria per una costruzione e formazione del modello più veloce. Gli algoritmi di apprendimento automatico richiedono iterazioni multiple per generare un modello ottimale risultante e, allo stesso modo, gli algoritmi dei grafici attraversano tutti i nodi e i bordi. Meno accesso al disco e traffico di rete controllato fanno una differenza enorme quando ci sono molti dati da elaborare.

56) È necessario avviare Hadoop per eseguire qualsiasi applicazione Apache Spark ?

Avviare Hadoop non è obbligatorio per eseguire qualsiasi applicazione Spark. Poiché non c’è uno stoccaggio separato in Apache Spark, usa Hadoop HDFS ma non è obbligatorio. I dati possono essere memorizzati nel file system locale, possono essere caricati dal file system locale ed elaborati.

57) Qual è il livello predefinito di parallelismo in Apache Spark?

Se l’utente non specifica esplicitamente allora il numero di partizioni sono considerate come livello predefinito di parallelismo in Apache Spark.

58) Spiega il flusso di lavoro comune di un programma Spark

  • Il primo passo in un programma Spark comporta la creazione di RDD di input da dati esterni.
  • Utilizzare varie trasformazioni RDD come filter() per creare nuovi RDD trasformati basati sulla logica di business.
  • perseguire() qualsiasi RDD intermedio che potrebbe essere riutilizzato in futuro.
  • Lancia varie azioni RDD() come first(), count() per iniziare il calcolo parallelo, che sarà poi ottimizzato ed eseguito da Spark.

59) In un dato programma Spark, come identifichi se una data operazione è trasformazione o azione?

Si può identificare l’operazione in base al tipo di ritorno –

i) L’operazione è un’azione, se il tipo di ritorno è diverso da RDD.

ii) L’operazione è trasformazione, se il tipo di ritorno è uguale a RDD.

60) Qual è secondo te un errore comune che gli sviluppatori apache spark fanno quando usano spark?

  • Mantenere la dimensione richiesta dei blocchi shuffle.
  • Gli sviluppatori spark spesso commettono errori con la gestione dei grafi aciclici diretti (DAG.)

61) Supponiamo che ci sia un RDD chiamato ProjectPrordd che contiene un enorme elenco di numeri. Il seguente codice spark è scritto per calcolare la media –

def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);

Cosa c’è di sbagliato nel codice di cui sopra e come lo correggi? Il modo migliore per calcolare la media è prima sommarla e poi dividerla per il conteggio come mostrato qui sotto –

def sum(x, y):
return x+y;
totale =ProjectPrordd.reduce(sum);
avg = totale / ProjectPrordd.count();

Tuttavia, il codice sopra potrebbe portare ad un overflow se il totale diventa grande. Quindi, il modo migliore per calcolare la media è dividere ogni numero per il conteggio e poi sommare come mostrato sotto –

cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);

Q. Diciamo che ho un enorme elenco di numeri in un file in HDFS. Ogni riga ha un numero.E voglio com

Domande di intervista su Spark SQL

1) Spiega la differenza tra Spark SQL e Hive.

  • Spark SQL è più veloce di Hive.
  • Ogni query Hive può essere facilmente eseguita in Spark SQL ma viceversa non è vero.
  • Spark SQL è una libreria mentre Hive è un framework.
  • Non è obbligatorio creare un metastore in Spark SQL ma è obbligatorio creare un metastore Hive.
  • Spark SQL infonde automaticamente lo schema mentre in Hive lo schema deve essere dichiarato esplicitamente.

Domande di intervista su Spark Streaming

1) Nominare alcune fonti da cui il componente Spark streaming può elaborare dati in tempo reale.

Apache Flume, Apache Kafka, Amazon Kinesis

2) Nominare alcune aziende che stanno già usando Spark Streaming.

Uber, Netflix, Pinterest.

3) Qual è il livello inferiore di astrazione in Spark Streaming API?

DStream.

4) Cosa intendi per ricevitori in Spark Streaming?

I ricevitori sono entità speciali in Spark Streaming che consumano dati da varie fonti di dati e li spostano in Apache Spark. I ricevitori sono di solito creati da contesti di streaming come compiti di lunga durata su vari esecutori e programmati per operare in modo round robin con ogni ricevitore che prende un singolo core.

Invitiamo la comunità dei big data a condividere le domande e le risposte più frequenti di Apache Spark Interview, nei commenti qui sotto – per facilitare i colloqui di lavoro sui big data per tutti i futuri professionisti dell’analisi.

5) Come si calcola il numero di esecutori necessari per fare l’elaborazione in tempo reale utilizzando Apache Spark? Quali fattori devono essere presi in considerazione per decidere il numero di nodi per l’elaborazione in tempo reale?

Il numero di nodi può essere deciso facendo il benchmarking dell’hardware e considerando più fattori come il throughput ottimale (velocità di rete), l’utilizzo della memoria, i framework di esecuzione utilizzati (YARN, Standalone o Mesos) e considerando gli altri lavori che sono in esecuzione all’interno di questi framework di esecuzione insieme a spark.

6) Qual è la differenza tra Spark Transform in DStream e map?

la funzione transform in spark streaming consente agli sviluppatori di utilizzare le trasformazioni di Apache Spark sugli RDD sottostanti per lo stream. la funzione map in hadoop è utilizzata per una trasformazione da elemento a elemento e può essere implementata utilizzando transform.Idealmente, map lavora sugli elementi del Dstream e transform consente agli sviluppatori di lavorare con gli RDD del DStream. map è una trasformazione elementare mentre transform è una trasformazione RDD.

Check Out Top Scala Interview Questions for Spark Developers.

Lascia un commento