mssparkutils Flashcards
Scenario: Du bruker runMultiple, og én notebook tar mye lengre tid enn forventet. Hvordan håndterer du dette uten å blokkere hele batchen?
Sett lavere timeout for den notebooken, eller del opp batchen i flere mindre kall.
Scenario: En notebook feiler i runMultiple, men du vil fortsette med de andre. Hvordan kan du konfigurere det?
Bruke egne try-except rundt hvert kall, eller kjøre sekvensielt og håndtere feil per notebook.
Scenario: Du trenger å sende en liste med tall til en notebook via run. Hva må du passe på?
At alle verdier må kunne serialiseres til JSON, dvs. primitive typer som int, float.
Scenario: En parameterverdi inneholder spesialtegn som &, %, $. Hva bør du gjøre før du sender den til run?
Escape spesialtegn eller sikre at verdiene er korrekt formatert som string.
Scenario: Du har dyp nesting av notebooks (4 nivåer). Hva slags problemer kan oppstå?
Stack overflow, dårlig ytelse, og vanskelig feilsøking.
Scenario: Du får serialization error når du kjører runMultiple. Hva er trolig årsaken?
Parametrene inneholder ikke-serialiserbare typer eller nested datastrukturer.
Scenario: Du bruker isInNotebook i en notebook som blir kalt med runMultiple. Hva returnerer den?
Den returnerer True fordi den fortsatt kjører i notebook-kontekst.
Scenario: En notebook trenger å stoppe umiddelbart ved en feil. Hva er best praksis?
Bruke mssparkutils.notebook.exit med en feilmelding tidlig i koden.
Scenario: Etter et runMultiple-kall vil du vite hvilken notebook som feilet. Hvordan gjør du det?
Fange exceptionen og bruke logging med hvilken notebook som kastet feilen.
Scenario: Du vil ha parallelle kjøringer av notebooks i Synapse. Hvilken metode bør du bruke?
mssparkutils.notebook.runMultiple med paralelliseringsstøtte.
Scenario: Du sender en veldig stor JSON som parameter. Hva kan gå galt?
Kan få memory overflow eller serialization error.
Scenario: Hvorfor er det en dårlig idé å sende hele DataFrames som parametre i run?
DataFrames kan ikke serialiseres som parametre; send referanser (eks. stier) isteden.
Scenario: Notebook A kaller Notebook B som kaller Notebook C. Notebook C feiler. Hvordan påvirker det Notebook A?
Notebook A vil få en exception med mindre du håndterer feilen eksplisitt.
Scenario: Du vil returnere en spesifikk verdi fra en notebook. Hvordan gjør du det?
Bruke mssparkutils.notebook.exit(‘verdi’) i slutten av notebooken.
Scenario: Du ønsker å sende dynamiske parametre til en notebook avhengig av runtime-data. Hvordan løser du det best?
Bygge opp en dictionary dynamisk i koden og sende det til run.
Scenario: Du bruker run og får timeout error etter 1800 sekunder. Hva kan du gjøre?
Øke timeout-verdien eksplisitt i run-kallet.
Scenario: Du vil retry en notebook-kjøring ved feil automatisk. Hvordan implementerer du dette?
Pakke run-kallet i en løkke med retry-logikk ved exception.
Scenario: Du trenger å vite om koden kjører i batch eller interaktiv notebook. Hva bruker du?
Bruke mssparkutils.notebook.isInNotebook().
Scenario: Hvordan kan du sørge for at parametere er riktig serialisert før du sender dem i run?
Bruke JSON-serialisering av parametrene manuelt før sending.
Scenario: Du får KeyError i målnotebooken ved tilgang på parametre. Hva kan være problemet?
Parameternavnet er feil eller mangler i input eller målnotebook.
Scenario: En notebook bruker exit(), men returnerer feil format. Hva bør du gjøre?
Sikre at verdien returnert av exit er en string.
Scenario: Hvorfor bør du bruke try-except rundt mssparkutils.notebook.run-kall?
For å fange og logge feil på en kontrollert måte uten å stoppe hele prosessen.
Scenario: Hvordan håndterer du logging av resultater fra runMultiple?
Logge hver individuelle resultatstreng sammen med notebook-navn.
Scenario: Hvordan påvirker feilhåndtering i runMultiple ytelsen?
Feilhåndtering kan gjøre at runMultiple kjører tregere om mange feiler og må fanges.