Självstudie: Skapa Apache Spark-jobbdefinition i Synapse Studio

Den här självstudien visar hur du använder Synapse Studio för att skapa Apache Spark-jobbdefinitioner och sedan skicka dem till en serverlös Apache Spark-pool.

Den här självstudien omfattar följande uppgifter:

  • Skapa en Apache Spark-jobbdefinition för PySpark (Python)
  • Skapa en Apache Spark-jobbdefinition för Spark (Scala)
  • Skapa en Apache Spark-jobbdefinition för .NET Spark (C#/F#)
  • Skapa jobbdefinition genom att importera en JSON-fil
  • Exportera en Apache Spark-jobbdefinitionsfil till lokal
  • Skicka en Apache Spark-jobbdefinition som ett batchjobb
  • Lägga till en Apache Spark-jobbdefinition i pipeline

Förutsättningar

Innan du börjar med den här självstudien måste du uppfylla följande krav:

  • En Azure Synapse Analytics-arbetsyta. Anvisningar finns i Skapa en Azure Synapse Analytics-arbetsyta.
  • En serverlös Apache Spark-pool.
  • Ett ADLS Gen2-lagringskonto. Du måste vara Storage Blob Data-deltagare för det ADLS Gen2-filsystem som du vill arbeta med. Om du inte gör det måste du lägga till behörigheten manuellt.
  • Om du inte vill använda standardlagringen för arbetsytan länkar du det ADLS Gen2-lagringskonto som krävs i Synapse Studio.

Skapa en Apache Spark-jobbdefinition för PySpark (Python)

I det här avsnittet skapar du en Apache Spark-jobbdefinition för PySpark (Python).

  1. Öppna Synapse Studio.

  2. Du kan gå till Exempelfiler för att skapa Apache Spark-jobbdefinitioner för att ladda ned exempelfiler för python.zip, sedan packa upp det komprimerade paketet och extrahera wordcount.py - och shakespeare.txt-filerna .

    exempelfiler

  3. Välj Data ->Länkad ->Azure Data Lake Storage Gen2 och ladda upp wordcount.py och shakespeare.txt till ditt ADLS Gen2-filsystem.

    ladda upp Python-fil

  4. Välj Utveckla hubb, välj ikonen +och välj Spark-jobbdefinition för att skapa en ny Spark-jobbdefinition.

    skapa ny definition för Python

  5. Välj PySpark (Python) i listrutan Språk i huvudfönstret för Apache Spark-jobbdefinitionen.

    välj python

  6. Fyll i information för Apache Spark-jobbdefinition.

    Egenskap Beskrivning
    Jobbdefinitionsnamn Ange ett namn för apache Spark-jobbdefinitionen. Det här namnet kan uppdateras när som helst tills det publiceras.
    Prov: job definition sample
    Huvuddefinitionsfil Huvudfilen som används för jobbet. Välj en PY-fil från lagringen. Du kan välja Ladda upp fil för att ladda upp filen till ett lagringskonto.
    Prov: abfss://…/path/to/wordcount.py
    Kommandoradsargument Valfria argument för jobbet.
    Prov: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Obs! Två argument för exempeljobbdefinitionen avgränsas med ett blanksteg.
    Referensfiler Ytterligare filer som används som referens i huvuddefinitionsfilen. Du kan välja Ladda upp fil för att ladda upp filen till ett lagringskonto.
    Spark-pool Jobbet skickas till den valda Apache Spark-poolen.
    Spark-version Version av Apache Spark som Apache Spark-poolen kör.
    Exekverare Antal utförare som ska anges i den angivna Apache Spark-poolen för jobbet.
    Storlek på köre Antal kärnor och minne som ska användas för utförare som anges i den angivna Apache Spark-poolen för jobbet.
    Drivrutinsstorlek Antal kärnor och minne som ska användas för drivrutinen som anges i den angivna Apache Spark-poolen för jobbet.
    Apache Spark-konfiguration Anpassa konfigurationer genom att lägga till egenskaper nedan. Om du inte lägger till en egenskap använder Azure Synapse standardvärdet när det är tillämpligt.

    Ange värdet för Spark-jobbdefinitionen för Python

  7. Välj Publicera för att spara Apache Spark-jobbdefinitionen.

    publicera py-definition

Skapa en Apache Spark-jobbdefinition för Apache Spark (Scala)

I det här avsnittet skapar du en Apache Spark-jobbdefinition för Apache Spark(Scala).

  1. Öppna Azure Synapse Studio.

  2. Du kan gå till Exempelfiler för att skapa Apache Spark-jobbdefinitioner för att ladda ned exempelfiler för scala.zip, sedan packa upp det komprimerade paketet och extrahera wordcount.jar - och shakespeare.txt-filerna .

    exempelfiler scala

  3. Välj Data ->Linked ->Azure Data Lake Storage Gen2 och överför wordcount.jar och shakespeare.txt till ditt ADLS Gen2-filsystem.

    förbereda scala-struktur

  4. Välj Utveckla hubb, välj ikonen +och välj Spark-jobbdefinition för att skapa en ny Spark-jobbdefinition. (Exempelbilden är samma som steg 4 i Skapa en Apache Spark-jobbdefinition (Python) för PySpark.)

  5. Välj Spark(Scala) i listrutan Språk i huvudfönstret för Apache Spark-jobbdefinitionen.

    välj scala

  6. Fyll i information för Apache Spark-jobbdefinition. Du kan kopiera exempelinformationen.

    Egenskap Beskrivning
    Jobbdefinitionsnamn Ange ett namn för apache Spark-jobbdefinitionen. Det här namnet kan uppdateras när som helst tills det publiceras.
    Prov: scala
    Huvuddefinitionsfil Huvudfilen som används för jobbet. Välj en JAR-fil från lagringen. Du kan välja Ladda upp fil för att ladda upp filen till ett lagringskonto.
    Prov: abfss://…/path/to/wordcount.jar
    Huvudklassnamn Den fullständigt kvalificerade identifieraren eller huvudklassen som finns i huvuddefinitionsfilen.
    Prov: WordCount
    Kommandoradsargument Valfria argument för jobbet.
    Prov: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Obs! Två argument för exempeljobbdefinitionen avgränsas med ett blanksteg.
    Referensfiler Ytterligare filer som används som referens i huvuddefinitionsfilen. Du kan välja Ladda upp fil för att ladda upp filen till ett lagringskonto.
    Spark-pool Jobbet skickas till den valda Apache Spark-poolen.
    Spark-version Version av Apache Spark som Apache Spark-poolen körs på.
    Exekverare Antal utförare som ska anges i den angivna Apache Spark-poolen för jobbet.
    Storlek på utförare Antal kärnor och minne som ska användas för utförare som anges i den angivna Apache Spark-poolen för jobbet.
    Drivrutinsstorlek Antal kärnor och minne som ska användas för drivrutinen som anges i den angivna Apache Spark-poolen för jobbet.
    Apache Spark-konfiguration Anpassa konfigurationer genom att lägga till egenskaper nedan. Om du inte lägger till en egenskap använder Azure Synapse standardvärdet när det är tillämpligt.

    Ange värdet för Spark-jobbdefinitionen för scala

  7. Välj Publicera för att spara Apache Spark-jobbdefinitionen.

    publicera scala-definition

Skapa en Apache Spark-jobbdefinition för .NET Spark(C#/F#)

I det här avsnittet skapar du en Apache Spark-jobbdefinition för .NET Spark(C#/F#).

  1. Öppna Azure Synapse Studio.

  2. Du kan gå till Exempelfiler för att skapa Apache Spark-jobbdefinitioner för att ladda ned exempelfiler för dotnet.zip, sedan packa upp det komprimerade paketet och extrahera wordcount.zip - och shakespeare.txt-filerna .

    exempel på dotnet

  3. Välj Data ->Länkad ->Azure Data Lake Storage Gen2 och ladda upp wordcount.zip och shakespeare.txt till ditt ADLS Gen2-filsystem.

    förbereda dotnet-struktur

  4. Välj Utveckla hubb, välj ikonen "+" och välj Spark-jobbdefinition för att skapa en ny Definition av Spark-jobb. (Exempelbilden är samma som steg 4 i Skapa en Apache Spark-jobbdefinition (Python) för PySpark.)

  5. Välj .NET Spark(C#/F#) i listrutan Språk i huvudfönstret för Apache Spark-jobbdefinition.

    välj dotnet

  6. Fyll i information för Apache Spark-jobbdefinition. Du kan kopiera exempelinformationen.

    Egenskap Beskrivning
    Jobbdefinitionsnamn Ange ett namn för apache Spark-jobbdefinitionen. Det här namnet kan uppdateras när som helst tills det publiceras.
    Prov: dotnet
    Huvuddefinitionsfil Huvudfilen som används för jobbet. Välj en ZIP-fil som innehåller ditt .NET för Apache Spark-program (d.v.s. den körbara huvudfilen, DLL-filer som innehåller användardefinierade funktioner och andra filer som krävs) från lagringen. Du kan välja Ladda upp fil för att ladda upp filen till ett lagringskonto.
    Prov: abfss://…/path/to/wordcount.zip
    Körbar huvudfil Den huvudsakliga körbara filen i huvuddefinitionens ZIP-fil.
    Prov: WordCount
    Kommandoradsargument Valfria argument till jobbet.
    Prov: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Obs! Två argument för exempeljobbsdefinitionen avgränsas med ett blanksteg.
    Referensfiler Ytterligare filer som krävs av arbetsnoderna för att köra .NET för Apache Spark-programmet som inte ingår i ZIP-huvuddefinitionsfilen (det vill sa beroende jar-filer, ytterligare användardefinierade funktions-DLL:er och andra konfigurationsfiler). Du kan välja Ladda upp fil för att ladda upp filen till ett lagringskonto.
    Spark-pool Jobbet skickas till den valda Apache Spark-poolen.
    Spark-version Version av Apache Spark som Apache Spark-poolen körs på.
    Exekverare Antal utförare som ska anges i den angivna Apache Spark-poolen för jobbet.
    Storlek på utförare Antal kärnor och minne som ska användas för utförare som anges i den angivna Apache Spark-poolen för jobbet.
    Drivrutinsstorlek Antal kärnor och minne som ska användas för drivrutinen som anges i den angivna Apache Spark-poolen för jobbet.
    Apache Spark-konfiguration Anpassa konfigurationer genom att lägga till egenskaper nedan. Om du inte lägger till en egenskap använder Azure Synapse standardvärdet när det är tillämpligt.

    Ange värdet för Spark-jobbdefinitionen för dotnet

  7. Välj Publicera för att spara Apache Spark-jobbdefinitionen.

    publicera dotnet-definition

Anteckning

Om Apache Spark-jobbdefinitionen för Apache Spark-konfigurationen inte gör något speciellt för Apache Spark-konfigurationen används standardkonfigurationen när jobbet körs.

Skapa Apache Spark-jobbdefinition genom att importera en JSON-fil

Du kan importera en befintlig lokal JSON-fil till Azure Synapse arbetsyta från menyn Åtgärder (...) i Apache Spark-jobbdefinitionsutforskaren för att skapa en ny Apache Spark-jobbdefinition.

skapa importdefinition

Spark-jobbdefinitionen är helt kompatibel med Livy API. Du kan lägga till ytterligare parametrar för andra Livy-egenskaper (Livy Docs – REST API (apache.org) i den lokala JSON-filen. Du kan också ange spark-konfigurationsrelaterade parametrar i konfigurationsegenskapen enligt nedan. Sedan kan du importera tillbaka JSON-filen för att skapa en ny Apache Spark-jobbdefinition för batchjobbet. Exempel på JSON för import av Spark-definition:

   {
  "targetBigDataPool": {
    "referenceName": "socdemolarge",
    "type": "BigDataPoolReference"
  },
  "requiredSparkVersion": "2.3",
  "language": "scala",
  "jobProperties": {
    "name": "robinSparkDefinitiontest",
    "file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
    "className": "WordCount",
    "args": [
      "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
    ],
    "jars": [],
    "files": [],
    "conf": {
      "spark.dynamicAllocation.enabled": "false",
      "spark.dynamicAllocation.minExecutors": "2",
      "spark.dynamicAllocation.maxExecutors": "2"
    },
    "numExecutors": 2,
    "executorCores": 8,
    "executorMemory": "24g",
    "driverCores": 8,
    "driverMemory": "24g"
  }
}

andra livy egenskaper

Exportera en befintlig Apache Spark-jobbdefinitionsfil

Du kan exportera befintliga Apache Spark-jobbdefinitionsfiler till lokalt från åtgärdsmenyn (...) i Utforskaren. Du kan uppdatera JSON-filen ytterligare för ytterligare Livy-egenskaper och importera tillbaka den för att skapa en ny jobbdefinition om det behövs.

skapa exportdefinition

skapa exportdefinition 2

Skicka en Apache Spark-jobbdefinition som ett batchjobb

När du har skapat en Apache Spark-jobbdefinition kan du skicka den till en Apache Spark-pool. Kontrollera att du är Storage Blob Data-deltagare för det ADLS Gen2-filsystem som du vill arbeta med. Om du inte gör det måste du lägga till behörigheten manuellt.

Scenario 1: Skicka Apache Spark-jobbdefinition

  1. Öppna ett apache spark-jobbdefinitionsfönster genom att välja det.

    Öppna spark-jobbdefinitionen som ska skickas

  2. Välj knappen Skicka för att skicka projektet till den valda Apache Spark-poolen. Du kan välja fliken Spark-övervaknings-URL för att se LogQuery för Apache Spark-programmet.

    Välj knappen Skicka för att skicka spark-jobbdefinitionen

    Dialogrutan Spark-överföring

Scenario 2: Visa förloppet för Apache Spark-jobb som körs

  1. Välj Övervaka och välj sedan alternativet Apache Spark-program . Du hittar det skickade Apache Spark-programmet.

    Visa Spark-program

  2. Välj sedan ett Apache Spark-program. Fönstret SparkJobDefinition-jobb visas. Du kan visa jobbkörningens förlopp härifrån.

    Visa Spark-programmet LogQuery

Scenario 3: Kontrollera utdatafilen

  1. Välj Data ->Linked ->Azure Data Lake Storage Gen2 (hozhaobdbj), öppna resultatmappen som skapades tidigare. Du kan gå till resultatmappen och kontrollera om utdata genereras.

    Visa utdatafil

Lägga till en Apache Spark-jobbdefinition i pipeline

I det här avsnittet lägger du till en Apache Spark-jobbdefinition i pipelinen.

  1. Öppna en befintlig Apache Spark-jobbdefinition.

  2. Välj ikonen längst upp till höger i Apache Spark-jobbdefinitionen, välj Befintlig pipeline eller Ny pipeline. Mer information finns på sidan Pipeline.

    lägg till i pipeline1

    lägg till i pipeline2

Nästa steg

Sedan kan du använda Azure Synapse Studio för att skapa Power BI-datamängder och hantera Power BI-data. Gå vidare till artikeln Länka en Power BI-arbetsyta till en Synapse-arbetsyta om du vill veta mer.