Share via


Quickstart: Een serverloze Apache Spark-pool maken in Azure Synapse Analytics met behulp van webhulpprogramma's

In deze quickstart leert u hoe u een serverloze Apache Spark-pool maakt in Azure Synapse met behulp van webhulpprogramma's. Vervolgens leert u hoe u verbinding maakt met de Apache Spark-pool en Spark SQL-query's uitvoert op bestanden en tabellen. Apache Spark maakt snelle gegevensanalyse en clustercomputing mogelijk met behulp van in-memory verwerking. Zie Overzicht: Apache Spark in Azure Synapse voor meer informatie over Spark in Azure Synapse.

Belangrijk

Facturering voor Spark-exemplaren wordt naar rato per minuut berekend, ongeacht of u deze gebruikt of niet. Zorg er daarom voor dat u de Spark-instantie afsluit wanneer u deze niet meer nodig hebt of stel een korte time-out in. Zie voor meer informatie de sectie Resources opschonen van dit artikel.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Vereiste voorwaarden

Aanmelden bij Azure Portal

Meld u aan bij het Azure-portaal.

Als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account voordat u begint.

Een notitieblok maken

Een notebook is een interactieve omgeving die ondersteuning biedt voor verschillende programmeertalen. Met het notebook kunt u communiceren met uw gegevens, code combineren met markdown, tekst en eenvoudige visualisaties uitvoeren.

  1. Selecteer Synapse Studio starten vanuit de Azure-portalweergave voor de Azure Synapse-werkruimte die u wilt gebruiken.

  2. Zodra Synapse Studio is gestart, selecteert u Ontwikkelen. Selecteer vervolgens het pictogram '+' om een nieuwe resource toe te voegen.

  3. Selecteer Notitieblok. Er wordt een nieuw notitieblok gemaakt en geopend met een automatisch gegenereerde naam.

    Nieuw notitieblok

  4. Geef in het venster Eigenschappen een naam op voor het notitieblok.

  5. Klik op de werkbalk op Publiceren.

  6. Als uw werkruimte slechts één Apache Spark-pool bevat, wordt deze standaard geselecteerd. Gebruik de vervolgkeuzelijst om de juiste Apache Spark-pool te selecteren als er geen is geselecteerd.

  7. Klik op Code toevoegen. De standaardtaal is Pyspark. U gaat een combinatie van Pyspark en Spark SQL gebruiken, dus de standaardkeuze is prima. Andere ondersteunde talen zijn Scala en .NET voor Spark.

  8. Vervolgens maakt u een eenvoudig Spark DataFrame-object om te bewerken. In dit geval maakt u deze op basis van code. Er zijn drie rijen en drie kolommen:

    new_rows = [('CA',22, 45000),("WA",35,65000) ,("WA",50,85000)]
    demo_df = spark.createDataFrame(new_rows, ['state', 'age', 'salary'])
    demo_df.show()
    
  9. Voer nu de cel uit met een van de volgende methoden:

    • Druk op Shift+Enter.

    • Selecteer het blauwe afspeelpictogram links van de cel.

    • Selecteer de knop Alles uitvoeren op de werkbalk.

      Gegevensframeobject maken

  10. Als het Apache Spark-poolexemplaar nog niet actief is, wordt het automatisch gestart. U ziet de status van de Apache Spark-pool onder de cel die u aan het uitvoeren bent, en ook in het statusvenster onderaan het notebook. Afhankelijk van de grootte van het zwembad duurt het starten 2-5 minuten. Zodra de code is uitgevoerd, wordt onder de cel weergegeven hoe lang het duurde om de code uit te voeren en de uitvoering ervan. In de uitvoercel ziet u de uitvoer.

    Uitvoer van het uitvoeren van een cel

  11. De gegevens bestaan nu in een DataFrame van daaruit, u kunt de gegevens op veel verschillende manieren gebruiken. U hebt deze in verschillende indelingen nodig voor de rest van deze quickstart.

  12. Voer de onderstaande code in een andere cel in en voer deze uit. Hiermee wordt een Spark-tabel, een CSV en een Parquet-bestand gemaakt met kopieën van de gegevens:

     demo_df.createOrReplaceTempView('demo_df')
     demo_df.write.csv('demo_df', mode='overwrite')
     demo_df.write.parquet('abfss://<<TheNameOfAStorageAccountFileSystem>>@<<TheNameOfAStorageAccount>>.dfs.core.windows.net/demodata/demo_df', mode='overwrite')
    

    Als u de opslagverkenner gebruikt, is het mogelijk om de impact te zien van de twee verschillende manieren om een bestand te schrijven dat hierboven wordt gebruikt. Wanneer er geen bestandssysteem is opgegeven, wordt de standaardwaarde gebruikt, in dit geval default>user>trusted-service-user>demo_df. De gegevens worden opgeslagen op de locatie van het opgegeven bestandssysteem.

    Merk op dat in zowel de 'csv'- als 'parquet'-formaten bij schrijfbewerkingen een map wordt aangemaakt met veel gepartitioneerde bestanden.

    Storage Explorer-weergave van de uitvoer

    Schermopname waarin standaard demodata >> demo_df-pad is gemarkeerd.

Spark SQL-instructies uitvoeren

Structured Query Language (SQL) is de meest voorkomende en veelgebruikte taal voor het opvragen en definiëren van gegevens. Spark SQL fungeert als een uitbreiding van Apache Spark voor het verwerken van gestructureerde gegevens, met behulp van de bekende SQL-syntaxis.

  1. Plak de volgende code in een lege cel en voer de code uit. Met de opdracht worden de tabellen in de pool weergegeven.

    %%sql
    SHOW TABLES
    

    Wanneer u een notebook gebruikt met uw Azure Synapse Apache Spark-pool, krijgt u een voorinstelling sqlContext die u kunt gebruiken om query's uit te voeren met behulp van Spark SQL. %%sql geeft aan dat het notebook de voorinstelling sqlContext moet gebruiken om de query uit te voeren. Met de query worden de tien bovenste rijen opgehaald uit een systeemtabel die standaard wordt geleverd met alle Azure Synapse Apache Spark-pools.

  2. Voer een andere query uit om de gegevens in demo_df te zien.

    %%sql
    SELECT * FROM demo_df
    

    De code produceert twee uitvoercellen: een cel die gegevensresultaten bevat en een andere cel die de taakweergave toont.

    In de resultatenweergave wordt standaard een raster weergegeven. Er is echter een weergavewisselaar onder het raster waarmee de weergave kan schakelen tussen raster- en grafiekweergaven.

    Query-uitvoer in Azure Synapse Spark

  3. Selecteer Grafiek in de weergavewisselaar.

  4. Selecteer het pictogram Weergaveopties uiterst rechts.

  5. Selecteer 'staafdiagram' in het veld Grafiektype .

  6. Selecteer 'state' in het kolomveld X-as.

  7. Selecteer 'salaris' in het kolomveld Y-as.

  8. Selecteer in het veld Aggregatie de optie 'AVG'.

  9. Selecteer de optie Toepassen.

    Grafiekuitvoer in Azure Synapse Spark

  10. Het is mogelijk om dezelfde ervaring met het uitvoeren van SQL te krijgen, maar zonder dat u van taal hoeft te wisselen. U kunt dit doen door de bovenstaande SQL-cel te vervangen door deze PySpark-cel. De uitvoerervaring is hetzelfde omdat de weergaveopdracht wordt gebruikt:

    display(spark.sql('SELECT * FROM demo_df'))
    
  11. Elk van de cellen die eerder zijn uitgevoerd, had de mogelijkheid om naar de History Server en de Monitoring te gaan. Als u op de koppelingen klikt, gaat u naar verschillende onderdelen van de gebruikerservaring.

Opmerking

Sommige officiële documentatie van Apache Spark is afhankelijk van het gebruik van de Spark-console, die niet beschikbaar is in Synapse Spark. Gebruik in plaats daarvan de notebook - of IntelliJ-ervaringen .

De hulpbronnen opschonen

Azure Synapse slaat uw gegevens op in Azure Data Lake Storage. U kunt een Spark-exemplaar veilig laten afsluiten wanneer deze niet in gebruik is. Er worden kosten in rekening gebracht voor een serverloze Apache Spark-pool zolang deze wordt uitgevoerd, zelfs als deze niet in gebruik is.

Omdat de kosten voor de pool veel meer zijn dan de kosten voor opslag, is het economisch zinvol om Spark-exemplaren te laten afsluiten wanneer ze niet in gebruik zijn.

Om ervoor te zorgen dat de Spark-instantie wordt afgesloten, beëindigt u alle verbonden sessies (notebooks). De pool wordt afgesloten wanneer de niet-actieve tijd is bereikt die is opgegeven in de Apache Spark-pool. U kunt ook een eindsessie selecteren op de statusbalk onder aan het notitieblok.

Volgende stappen

In deze quickstart hebt u geleerd hoe u een serverloze Apache Spark-pool maakt en een eenvoudige Spark SQL-query uitvoert.