Sidst opdateret: 25 Jan 2021
Den spørgsmål, der stilles ved en big data udvikler eller apache spark udvikler jobsamtale kan falde i en af følgende kategorier baseret på Spark Økosystem Komponenter –
Dertil kommer, er det vigtigt at vise projekterfaring inden for følgende –
|
Med den stigende efterspørgsel fra branchen, til at behandle store data i et hurtigere tempo – Apache Spark er ved at få et enormt momentum, når det kommer til virksomhedsadoption. Hadoop MapReduce understøttede godt behovet for at behandle big data hurtigt, men der var altid et behov blandt udviklere for at lære mere fleksible værktøjer til at holde trit med det overlegne marked for mellemstore big data sæt, til realtids databehandling inden for sekunder.
For at understøtte momentum for hurtigere big data behandling, er der stigende efterspørgsel efter Apache Spark udviklere, der kan validere deres ekspertise i implementering af best practices for Spark – til at bygge komplekse big data løsninger. I samarbejde med og big data brancheeksperter – vi har kurateret en liste over top 50 Apache Spark Interview spørgsmål og svar, der vil hjælpe studerende/professionelle med at få et big data-udviklerinterview og bygge bro over talentforsyningen for Spark-udviklere på tværs af forskellige industrisegmenter.
Klik her for at se en liste over 50+ løste, end-to-end Big Data og Machine Learning Project Solutions (genanvendelig kode + videoer)
Firmaer som Amazon, Shopify, Alibaba og eBay anvender Apache Spark til deres big data-implementeringer – efterspørgslen efter Spark-udviklere forventes at vokse eksponentielt. Google Trends bekræfter “hockey-stick-lignende vækst” i Spark-virksomheders vedtagelse og bevidsthed blandt organisationer på tværs af forskellige brancher. Spark er ved at blive populær på grund af sin evne til at håndtere event streaming og behandle store data hurtigere end Hadoop MapReduce. 2017 er det bedste tidspunkt til at finpudse dine Apache Spark-færdigheder og forfølge en frugtbar karriere som dataanalyseprofessionel, datavidenskabsmand eller big data-udvikler.
Disse Apache Spark-projekter vil hjælpe dig med at udvikle færdigheder, som vil gøre dig berettiget til at ansøge om Spark-udviklerjobroller.
Top 50 Apache Spark Interview spørgsmål og svar
Forberedelse er meget vigtig for at reducere den nervøse energi ved enhver big data jobsamtale. Uanset den big data ekspertise og de færdigheder man har, frygter alle kandidater den personlige jobsamtale om big data jobsamtale. Selv om der ikke er nogen måde at forudsige præcis, hvilke spørgsmål der vil blive stillet i en jobsamtale for big data- eller spark-udviklere – kan disse Apache spark-interviewspørgsmål og -svar måske hjælpe dig med at forberede dig bedre til disse samtaler.
1) Sammenlign Spark vs Hadoop MapReduce
Kriterier |
Hadoop MapReduce |
Apache Spark |
Hukommelse |
Har ikke udnyttet hukommelsen i hadoop-klyngen maksimalt. | Lader data blive gemt på hukommelsen med brug af RDD’er. |
Diskforbrug |
MapReduce er diskorienteret. | Spark cacher data i hukommelsen og sikrer lav latenstid. |
Behandling |
Kun batchbehandling understøttes | Understøtter behandling i realtid via spark streaming. |
Installation |
Er bundet til hadoop. | Er ikke bundet til Hadoop. |
Enkelhed, fleksibilitet og ydeevne er de største fordele ved at bruge Spark frem for Hadoop.
- Spark er 100 gange hurtigere end Hadoop til behandling af store data, da den lagrer dataene in-memory ved at placere dem i Resilient Distributed Databases (RDD).
- Spark er nemmere at programmere, da den leveres med en interaktiv tilstand.
- Den giver fuldstændig genopretning ved hjælp af lineage graph, når noget går galt.
Referer Spark vs Hadoop
Klik her for at se 52+ løste, genanvendelige projektløsninger i Big Data – Spark
2) Hvad er Shark?
De fleste databehandlere kender kun SQL og er ikke gode til programmering. Shark er et værktøj, der er udviklet til folk, der kommer fra en database-baggrund – for at få adgang til Scala MLib-funktioner gennem Hive-lignende SQL-interface. Shark-værktøjet hjælper data-brugere med at køre Hive på Spark – og tilbyder kompatibilitet med Hive metastore, forespørgsler og data.
3) Nævn nogle anvendelsestilfælde, hvor Spark udkonkurrerer Hadoop i behandling.
- Sensor Data Processing -Apache Spark’s “In-memory computing” fungerer bedst her, da data hentes og kombineres fra forskellige kilder.
- Spark foretrækkes frem for Hadoop til forespørgsel af data i realtid
- Stream Processing – Til behandling af logfiler og registrering af svig i live-streams med henblik på advarsler er Apache Spark den bedste løsning.
4) Hvad er en sparse vektor?
En sparse vektor har to parallelle arrays – et til indekser og et andet til værdier. Disse vektorer bruges til lagring af poster, der ikke er nul, for at spare plads.
5) Hvad er RDD?
RDD’er (Resilient Distributed Datasets) er en grundlæggende abstraktion i Apache Spark, der repræsenterer de data, der kommer ind i systemet, i objektformat. RDD’er bruges til in-memory-beregninger på store klynger på en fejltolerant måde. RDD’er er skrivebeskyttede, portionerede samlinger af poster, der er –
- Immutable – RDD’er kan ikke ændres.
- Resilient – Hvis en knude, der har partitionen, fejler, overtager den anden knude dataene.
Byg en Big Data-projektportefølje op ved at arbejde på apache spark-projekter i realtid
6) Forklar om transformationer og handlinger i forbindelse med RDD’er.
Transformationer er funktioner, der udføres på anmodning for at producere en ny RDD. Alle transformationer er efterfulgt af handlinger. Nogle eksempler på transformationer omfatter map, filter og reduceByKey.
Aktioner er resultaterne af RDD-beregninger eller transformationer. Når en handling er udført, flyttes dataene fra RDD tilbage til den lokale maskine. Nogle eksempler på handlinger omfatter reduce, collect, first og take.
7) Hvilke sprog understøttes af Apache Spark til udvikling af big data-applikationer?
Scala, Java, Python, R og Clojure
8) Kan man bruge Spark til at få adgang til og analysere data, der er gemt i Cassandra-databaser?
Ja, det er muligt, hvis man bruger Spark Cassandra Connector.
9) Er det muligt at køre Apache Spark på Apache Mesos?
Ja, Apache Spark kan køres på de hardwareklynger, der forvaltes af Mesos.
10) Forklar om de forskellige klyngeadministratorer i Apache Spark
De 3 forskellige klyngeadministratorer, der understøttes i Apache Spark, er:
- YARN
- Apache Mesos -Har rige ressourceplanlægningsfunktioner og er velegnet til at køre Spark sammen med andre applikationer. Det er fordelagtigt, når flere brugere kører interaktive shells, fordi det nedskalerer CPU-tildelingen mellem kommandoer.
- Standalone-implementeringer – Velegnet til nye implementeringer, som kun kører og er nemme at opsætte.
11) Hvordan kan Spark forbindes med Apache Mesos?
For at forbinde Spark med Mesos-
- Konfigurer Spark-driverprogrammet til at oprette forbindelse til Mesos. Spark binær pakke skal være på et sted, der er tilgængeligt for Mesos. (eller)
- Installer Apache Spark på samme placering som Apache Mesos, og konfigurer egenskaben “spark.mesos.executor.home” til at pege på den placering, hvor den er installeret.
12) Hvordan kan du minimere dataoverførsler, når du arbejder med Spark?
Minimering af dataoverførsler og undgåelse af shuffling hjælper med at skrive Spark-programmer, der kører hurtigt og pålideligt. De forskellige måder, hvorpå dataoverførsler kan minimeres, når man arbejder med Apache Spark, er:
- Brug Broadcast Variable- Broadcast Variable forbedrer effektiviteten af sammenføjninger mellem små og store RDD’er.
- Brug af akkumulatorer – Akkumulatorer hjælper med at opdatere værdierne af variabler parallelt under udførelsen.
- Den mest almindelige måde er at undgå operationer ByKey, repartition eller andre operationer, der udløser shuffles.
13) Hvorfor er der behov for broadcast-variabler, når man arbejder med Apache Spark?
Disse er skrivebeskyttede variabler, der er til stede i hukommelsescachen på hver maskine. Når man arbejder med Spark, eliminerer brugen af broadcast-variabler nødvendigheden af at sende kopier af en variabel til hver opgave, så data kan behandles hurtigere. Broadcast-variabler hjælper med at lagre en opslagstabel inde i hukommelsen, hvilket øger effektiviteten af hentning sammenlignet med et RDD-opslag ().
14) Er det muligt at køre Spark og Mesos sammen med Hadoop?
Ja, det er muligt at køre Spark og Mesos sammen med Hadoop ved at lancere hver af disse som en separat tjeneste på maskinerne. Mesos fungerer som en samlet scheduler, der tildeler opgaver til enten Spark eller Hadoop.
15) Hvad er lineage graph?
Den RDD’er i Spark, afhænger af en eller flere andre RDD’er. Repræsentationen af afhængigheder i mellem RDD’er er kendt som lineage grafen. Lineage graph-oplysninger bruges til at beregne hver RDD efter behov, så når en del af en vedvarende RDD går tabt, kan de tabte data genoprettes ved hjælp af lineage graph-oplysningerne.
16) Hvordan kan du udløse automatiske oprydninger i Spark for at håndtere akkumulerede metadata?
Du kan udløse oprydningerne ved at indstille parameteren ‘spark.cleaner.ttl’ eller ved at opdele de langvarige job i forskellige batches og skrive de mellemliggende resultater til disken.
17) Forklar om de vigtigste biblioteker, der udgør Spark-økosystemet
- Spark MLib- Machine learning-bibliotek i Spark til almindeligt anvendte læringsalgoritmer som f.eks. clustering, regression, klassifikation osv.
- Spark Streaming – Dette bibliotek bruges til at behandle streamingdata i realtid.
- Spark GraphX – Spark API til grafparallelle beregninger med grundlæggende operatorer som joinVertices, subgraph, aggregateMessages osv.
- Spark SQL – Hjælper med at udføre SQL-lignende forespørgsler på Spark-data ved hjælp af standardvisualiserings- eller BI-værktøjer.
18) Hvad er fordelene ved at bruge Spark med Apache Mesos?
Det giver skalerbar partitionering mellem forskellige Spark-instanser og dynamisk partitionering mellem Spark og andre big data-rammer.
19) Hvad er betydningen af Sliding Window-operationen?
Sliding Window styrer overførsel af datapakker mellem forskellige computernetværk. Spark Streaming-biblioteket giver vinduesberegninger, hvor transformationerne på RDD’er anvendes over et glidende vindue af data. Når vinduet glider, kombineres og opereres de RDD’er, der falder inden for det pågældende vindue, for at producere nye RDD’er i den vinduesbaserede DStream.
20) Hvad er en DStream?
Discretiseret strøm er en sekvens af resiliente distribuerede databaser, der repræsenterer en strøm af data. DStreams kan oprettes fra forskellige kilder som Apache Kafka, HDFS og Apache Flume. DStreams har to operationer –
- Transformationer, der producerer en ny DStream.
- Output-operationer, der skriver data til et eksternt system.
21) Når man kører Spark-applikationer, er det så nødvendigt at installere Spark på alle knudepunkter i YARN-klyngen?
Spark behøver ikke at blive installeret, når du kører et job under YARN eller Mesos, fordi Spark kan udføres oven på YARN- eller Mesos-klynger uden at påvirke nogen ændring af klyngen.
22) Hvad er Catalyst-ramme?
Catalyst-ramme er en ny optimeringsramme, der findes i Spark SQL. Det giver Spark mulighed for automatisk at omdanne SQL-forespørgsler ved at tilføje nye optimeringer for at opbygge et hurtigere behandlingssystem.
23) Nævn et par virksomheder, der bruger Apache Spark i produktion.
Pinterest, Conviva, Shopify, Open Table
24) Hvilket Spark-bibliotek giver mulighed for pålidelig fildeling med hukommelseshastighed på tværs af forskellige klyngeframeworks?
Tachyon
Arbejd på interessante datalogiprojekter ved hjælp af Spark for at opbygge en imponerende projektportefølje!
25) Hvorfor bruges BlinkDB?
BlinkDB er en forespørgselsmotor til udførelse af interaktive SQL-forespørgsler på enorme datamængder og gengiver forespørgselsresultater markeret med meningsfulde fejlbjælker. BlinkDB hjælper brugerne med at balancere “forespørgselsnøjagtighed” med svartiden.
26) Hvordan kan du sammenligne Hadoop og Spark med hensyn til brugervenlighed?
Hadoop MapReduce kræver programmering i Java, hvilket er vanskeligt, selv om Pig og Hive gør det betydeligt lettere. Det tager tid at lære Pig- og Hive-syntaksen. Spark har interaktive API’er til forskellige sprog som Java, Python eller Scala og indeholder også Shark dvs. Spark SQL for SQL-elskere – hvilket gør det forholdsvis lettere at bruge end Hadoop.
27) Hvad er de almindelige fejl, som udviklere begår, når de kører Spark-applikationer?
Udviklerne begår ofte den fejl at-
- Slå webtjenesten flere gange ved at bruge flere klynger.
- Kør alt på den lokale knude i stedet for at distribuere det.
Udviklerne skal være forsigtige med dette, da Spark gør brug af hukommelse til behandling.
28) Hvad er fordelen ved en Parquet-fil?
Parquet-fil er en fil i kolonneformat, der hjælper –
- Begrænse I/O-operationer
- Konsumerer mindre plads
- Henter kun nødvendige kolonner.
29) Hvad er de forskellige datakilder, der er tilgængelige i SparkSQL?
- Parketfil
- JSON-datasæt
- Hive-tabeller
30) Hvordan bruger Spark Hadoop?
Spark har sin egen klyngeadministrationsberegning og bruger primært Hadoop til lagring.
For den komplette liste over løste Big Data-projekter – KLIK HER
31) Hvad er de vigtigste funktioner i Apache Spark, som du kan lide?
- Spark giver avancerede analysemuligheder som f.eks. grafalgoritmer, maskinlæring, streaming af data osv.
- Den har indbyggede API’er i flere sprog som Java, Scala, Python og R
- Den har gode præstationsgevinster, da den hjælper med at køre en applikation i Hadoop-klyngen ti gange hurtigere på disk og 100 gange hurtigere i hukommelsen.
32) Hvad forstår du ved Pair RDD?
Særlige operationer kan udføres på RDD’er i Spark ved hjælp af nøgle/værdipar, og sådanne RDD’er betegnes som Pair RDD’er. Pair RDD’er giver brugerne mulighed for at få adgang til hver nøgle parallelt. De har en reduceByKey () metode, der indsamler data baseret på hver nøgle, og en join () metode, der kombinerer forskellige RDD’er sammen, baseret på de elementer, der har samme nøgle.
33) Hvilken vil du vælge til et projekt – Hadoop MapReduce eller Apache Spark?
Svaret på dette spørgsmål afhænger af det givne projektscenarie – da det er kendt, at Spark gør brug af hukommelse i stedet for netværk og disk I/O. Spark bruger dog en stor mængde RAM og kræver en dedikeret maskine for at producere effektive resultater. Så beslutningen om at bruge Hadoop eller Spark varierer dynamisk med projektets krav og organisationens budget.
34) Forklar om de forskellige typer af transformationer på DStreams?
- Stateless Transformations- Behandling af batchen afhænger ikke af output fra den foregående batch. Eksempler – map (), reduceByKey (), filter ().
- Stateful Transformations- Behandling af batchen afhænger af de mellemliggende resultater fra den foregående batch. Eksempler -Transformationer, der afhænger af glidende vinduer.
35) Forklar om de populære anvendelsestilfælde for Apache Spark
Apache Spark bruges hovedsageligt til
- Iterativ maskinindlæring.
- Interaktiv dataanalyse og -behandling.
- Stream processing
- Sensor data processing
36) Er Apache Spark velegnet til Reinforcement learning?
Nej. Apache Spark fungerer kun godt til simple maskinlæringsalgoritmer som f.eks. clustering, regression og klassificering.
37) Hvad er Spark Core?
Den har alle de grundlæggende funktionaliteter i Spark, som f.eks. hukommelsesstyring, fejlgenopretning, interaktion med lagringssystemer, planlægning af opgaver osv.
38) Hvordan kan du fjerne de elementer med en nøgle, der er til stede i en anden RDD?
Brug subtractByKey () funktionen
39) Hvad er forskellen mellem persist() og cache()
persist () giver brugeren mulighed for at angive lagringsniveauet, mens cache () bruger standardlagringsniveauet.
40) Hvad er de forskellige niveauer af persistens i Apache Spark?
Apache Spark persisterer automatisk de mellemliggende data fra forskellige shuffle-operationer, men det foreslås ofte, at brugerne kalder persist () metoden på RDD’en, hvis de planlægger at genbruge den. Spark har forskellige persistensniveauer til at gemme RDD’erne på disk eller i hukommelsen eller som en kombination af begge dele med forskellige replikeringsniveauer.
De forskellige lagrings-/persistensniveauer i Spark er –
- MEMORY_ONLY
- MEMORY_ONLY_SER
- MEMORY_AND_DISK
- MEMORY_AND_DISK_SER, DISK_ONLY
- OFF_HEAP
41) Hvordan håndterer Spark overvågning og logning i Standalone-tilstand?
Spark har en webbaseret brugergrænseflade til overvågning af klyngen i standalone-tilstand, der viser klynge- og jobstatistik. Logoutput for hvert job skrives til arbejdskataloget på slavenoderne.
42) Giver Apache Spark check pointing?
Linjediagrammer er altid nyttige til at genoprette RDD’er fra en fejl, men det er generelt tidskrævende, hvis RDD’erne har lange linjekæder. Spark har et API til check pointing, dvs. et REPLICATE-flag til persist. Beslutningen om, hvilke data der skal checkpointes – afgøres dog af brugeren. Checkpoints er nyttige, når lineage graferne er lange og har brede afhængigheder.
43) Hvordan kan du starte Spark-jobs inde i Hadoop MapReduce?
Med SIMR (Spark in MapReduce) kan brugere køre ethvert Spark-job inde i MapReduce uden at kræve administratorrettigheder.
44) Hvordan bruger Spark Akka?
Spark bruger Akka grundlæggende til scheduling. Alle arbejdere anmoder om en opgave til master efter registrering. Masteren tildeler bare opgaven. Her bruger Spark Akka til messaging mellem arbejderne og masterne.
45) Hvordan kan du opnå høj tilgængelighed i Apache Spark?
- Implementing single node recovery with local file system
- Using StandBy Masters with Apache ZooKeeper.
46) Hadoop bruger replikering til at opnå fejltolerance. Hvordan opnås dette i Apache Spark?
Datalagringsmodellen i Apache Spark er baseret på RDD’er. RDD’er hjælper med at opnå fejltolerance gennem lineage. RDD har altid oplysninger om, hvordan man bygger fra andre datasæt. Hvis en partition af en RDD går tabt på grund af fejl, hjælper lineage med kun at bygge den pågældende tabte partition.
47) Forklar om de centrale komponenter i en distribueret Spark-applikation.
- Driver- Den proces, der kører programmets main ()-metode for at oprette RDD’er og udføre transformationer og handlinger på dem.
- Executor -De arbejdsprocesser, der kører de enkelte opgaver i et Spark-job.
- Cluster Manager – En komponent, der kan tilsluttes i Spark, til at starte Executors og Drivers. Cluster Manager gør det muligt for Spark at køre oven på andre eksterne managers som Apache Mesos eller YARN.
48) Hvad forstår du ved Lazy Evaluation?
Spark er intellektuel i den måde, hvorpå den opererer med data. Når du fortæller Spark, at den skal operere på et givet datasæt, lytter den til instruktionerne og noterer dem, så den ikke glemmer dem – men den gør intet, medmindre den bliver bedt om det endelige resultat. Når en transformation som map () kaldes på en RDD – operationen udføres ikke med det samme. Transformationer i Spark bliver ikke evalueret, før du udfører en handling. Dette er med til at optimere den samlede databehandlingsarbejdsgang.
49) Definer en arbejderknude.
En knude, der kan køre Spark-applikationskoden i en klynge, kan kaldes en arbejderknude. En arbejderknude kan have mere end én arbejder, som konfigureres ved at indstille egenskaben SPARK_ WORKER_INSTANCES i filen spark-env.sh. Der startes kun én worker, hvis egenskaben SPARK_ WORKER_INSTANCES ikke er defineret.
50) Hvad forstår du ved SchemaRDD?
En RDD, der består af rækkeobjekter (wrappers omkring grundlæggende string- eller integer-arrays) med skemaoplysninger om datatypen i hver kolonne.
51) Hvad er ulemperne ved at bruge Apache Spark frem for Hadoop MapReduce?
Apache spark skalerer ikke godt til beregningsintensive opgaver og bruger mange systemressourcer. Apache Spark’s in-memory-kapacitet kommer til tider til at udgøre en stor hindring for omkostningseffektiv behandling af store data. Spark har også sit eget filhåndteringssystem og skal derfor integreres med andre cloud-baserede dataplatforme eller apache hadoop.
52) Er det nødvendigt at installere Spark på alle noder i en YARN-klynge, når Apache Spark kører Apache Spark på YARN ?
Nej , det er ikke nødvendigt, fordi Apache Spark kører oven på YARN.
53) Hvad forstår du ved Executor Memory i en Spark-applikation?
Alle Spark-applikationer har samme faste heap-størrelse og samme faste antal kerner for en Spark-executor. Heap-størrelsen er det, der omtales som Spark eksekutorhukommelse, som styres med egenskaben spark.executor.memory i flaget -executor-memory. Hver Spark-applikation vil have en eksekutor på hver arbejderknude. Executor-hukommelsen er grundlæggende et mål for, hvor meget hukommelse på arbejderknuden applikationen vil udnytte.
54) Hvad gør Spark-motoren?
Spark-motoren planlægger, distribuerer og overvåger dataapplikationen på tværs af spark-klyngen.
55) Hvad gør Apache Spark god til arbejdsbelastninger med lav latenstid som grafbehandling og maskinlæring?
Apache Spark gemmer data i hukommelsen for hurtigere modelopbygning og træning. Maskinlæringsalgoritmer kræver flere gentagelser for at generere en optimal model, og på samme måde gennemløber grafalgoritmer alle knuder og kanter.Disse arbejdsbelastninger med lav latenstid, der kræver flere gentagelser, kan føre til øget ydeevne. Mindre diskadgang og kontrolleret netværkstrafik gør en stor forskel, når der er mange data, der skal behandles.
56) Er det nødvendigt at starte Hadoop for at køre en Apache Spark-applikation?
Starting hadoop is not manadatory to run any spark application. Da der ikke er nogen separat lagring i Apache Spark, bruger den Hadoop HDFS, men det er ikke obligatorisk. Dataene kan gemmes i det lokale filsystem, kan indlæses fra det lokale filsystem og behandles.
57) Hvad er standardniveauet for parallelitet i Apache Spark?
Hvis brugeren ikke udtrykkeligt angiver det, betragtes antallet af partitioner som standardniveauet for parallelitet i Apache Spark.
58) Forklar om den almindelige arbejdsgang i et Spark-program
- Det første trin i et Spark-program omfatter oprettelse af input RDD’er fra eksterne data.
- Brug forskellige RDD-transformationer som filter() for at oprette nye transformerede RDD’er baseret på forretningslogikken.
- persist() eventuelle mellemliggende RDD’er, som muligvis skal genbruges i fremtiden.
- Lancer forskellige RDD-handlinger() som first(), count() for at begynde parallel beregning , som derefter vil blive optimeret og udført af Spark.
59) I et givet Spark-program, hvordan vil du identificere, om en given operation er transformation eller handling?
Man kan identificere operationen baseret på returtypen –
i) Operationen er en handling, hvis returtypen er en anden end RDD.
ii) Operationen er transformation, hvis returtypen er den samme som RDD.
60) Hvad er ifølge dig en almindelig fejl, som apache spark-udviklere begår, når de bruger spark?
- Holdelse af den krævede størrelse af shuffle-blokke.
- Spark-udvikler begår ofte fejl med håndtering af dirigerede acykliske grafer (DAG’er.)
61) Antag, at der er en RDD ved navn ProjectPrordd, der indeholder en enorm liste af tal. Følgende gnistkode er skrevet for at beregne gennemsnittet –
def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
Hvad er der galt med ovenstående kode, og hvordan vil du rette den?
Den gennemsnitlige funktion er hverken kommutativ eller associativ. Den bedste måde at beregne gennemsnittet på er først at summere det og derefter dividere det med count som vist nedenfor –
def sum(x, y):return x+y;total =ProjectPrordd.reduce(sum);avg = total / ProjectPrordd.count();
Overstående kode kan imidlertid føre til et overløb, hvis totalen bliver stor. Så den bedste måde at beregne gennemsnittet på er at dividere hvert tal med tallet og derefter lægge det sammen som vist nedenfor –
cnt = ProjectPrordd.count();def divideByCnt(x):returner x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);
Q. Lad os sige, at jeg har en enorm liste af tal i en fil i HDFS. Hver linje har et nummer. og jeg vil com
Spark SQL Interview Spørgsmål
1) Forklar forskellen mellem Spark SQL og Hive.
- Spark SQL er hurtigere end Hive.
- Alle Hive-forespørgsler kan nemt udføres i Spark SQL, men omvendt er det ikke sandt.
- Spark SQL er et bibliotek, mens Hive er en ramme.
- Det er ikke obligatorisk at oprette et metastore i Spark SQL, men det er obligatorisk at oprette et Hive-metastore.
- Spark SQL udleder automatisk skemaet, mens skemaet i Hive skal deklareres eksplicit…
Spark Streaming Interview Spørgsmål
1) Nævn nogle kilder, hvorfra Spark streaming-komponenten kan behandle realtidsdata.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Nævn nogle virksomheder, der allerede bruger Spark Streaming.
Uber, Netflix, Pinterest.
3) Hvad er det nederste abstraktionslag i Spark Streaming API?
DStream.
4) Hvad forstår du ved receivers i Spark Streaming?
Receivers er særlige enheder i Spark Streaming, der forbruger data fra forskellige datakilder og flytter dem til Apache Spark. Modtagere oprettes normalt af streamingkontekster som langvarige opgaver på forskellige eksekutorer og planlægges til at fungere på en round robin-måde, hvor hver modtager tager en enkelt kerne.
Vi inviterer big data-fællesskabet til at dele de hyppigst stillede Apache Spark-interviewspørgsmål og -svar i kommentarerne nedenfor – for at lette big data-jobsamtaler for alle potentielle analytikere.
5) Hvordan vil du beregne antallet af eksekutorer, der kræves for at udføre realtidsbehandling ved hjælp af Apache Spark? Hvilke faktorer skal overvejes for at beslutte antallet af knudepunkter til realtidsbehandling?
Antal knudepunkter kan besluttes ved at benchmarke hardwaren og overveje flere faktorer såsom optimal gennemstrømning (netværkshastighed), hukommelsesforbrug, de eksekveringsrammer, der anvendes (YARN, Standalone eller Mesos) og overveje de andre job, der kører inden for disse eksekveringsrammer sammen med spark.
6) Hvad er forskellen mellem Spark Transform i DStream og map ?
Transform-funktionen i spark streaming giver udviklere mulighed for at bruge Apache Spark-transformationer på de underliggende RDD’er for strømmen. map-funktionen i hadoop bruges til en element til elementtransformation og kan implementeres ved hjælp af transform. ideelt set arbejder map på elementerne i Dstream og transform giver udviklere mulighed for at arbejde med RDD’er i DSstream. map er en elementær transformation, mens transform er en RDD-transformation.
Check Out Top Scala Interview Questions for Spark Developers.