Transformera data i molnet med hjälp av en Spark-aktivitet i Azure Data Factory

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Tips

Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.

I den här självstudien använder du Azure-portalen för att skapa en Azure Data Factory pipeline. Den här pipelinen transformerar data med hjälp av en Spark-aktivitet och en Azure HDInsight länkad tjänst på begäran.

I de här självstudierna går du igenom följande steg:

  • Skapa en datafabrik.
  • Skapa en pipeline som använder en Spark-aktivitet.
  • Utlös en pipelinekörning.
  • Övervaka pipelinekörningen.

Om du inte har någon Azure prenumeration skapar du ett free-konto innan du börjar.

Förutsättningar

Kommentar

Vi rekommenderar att du använder modulen Azure Az PowerShell för att interagera med Azure. Kom igång genom att läsa Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.

  • Azure lagringskonto. Du skapar ett Python skript och en indatafil och laddar upp dem till Azure Storage. Utdata från Spark-programmet lagras på det här lagringskontot. Spark-klustret på begäran använder samma lagringskonto som den primära lagringen.

Kommentar

HdInsight stöder endast lagringskonton för generell användning med standardnivån. Kontrollera att kontot inte är ett premiumlagringskonto eller ett lagringskonto enbart för bloblagring.

Ladda upp Python-skriptet till ditt Blob Storage-konto

  1. Skapa en Python fil med namnet WordCount_Spark.py med följande innehåll:

    import sys
    from operator import add
    
    from pyspark.sql import SparkSession
    
    def main():
        spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .getOrCreate()
    
        lines = spark.read.text("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/inputfiles/minecraftstory.txt").rdd.map(lambda r: r[0])
        counts = lines.flatMap(lambda x: x.split(' ')) \
            .map(lambda x: (x, 1)) \
            .reduceByKey(add)
        counts.saveAsTextFile("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/outputfiles/wordcount")
    
        spark.stop()
    
    if __name__ == "__main__":
        main()
    
  2. Ersätt <storageAccountName> med namnet på ditt Azure lagringskonto. Spara sedan filen.

  3. I Azure Blob Storage skapar du en container med namnet adftutorial om den inte finns.

  4. Skapa en mapp med namnet spark.

  5. Skapa en undermapp med namnet script under mappen spark.

  6. Överför filen WordCount_Spark.py till undermappen script.

Överföra indatafilen

  1. Skapa en fil med namnet minecraftstory.txt med lite text. Spark-programmet räknar antalet ord i texten.
  2. Skapa en undermapp med namnet inputfiles i mappen spark.
  3. Ladda upp filen minecraftstory.txt till undermappen inputfiles.

Skapa en datafabrik

Följ stegen i artikeln Quickstart: Skapa en datafabrik med hjälp av Azure-portalen för att skapa en datafabrik om du inte redan har en att arbeta med.

Skapa länkade tjänster

Du skapar två länkade tjänster i det här avsnittet:

  • En Azure Storage länkad tjänst som länkar ett Azure storage konto till datafabriken. Den här lagringen används av HDInsight-kluster på begäran. Den innehåller också Spark-skriptet som ska köras.
  • En länkad HDInsight-tjänst på begäran. Azure Data Factory skapar automatiskt ett HDInsight-kluster och kör Spark-programmet. HDInsight-klustret tas bort när det har varit inaktivt under en förinställd tid.

Skapa en Azure Storage länkad tjänst

  1. På startsidan växlar du till fliken Hantera i den vänstra panelen.

    Skärmbild som visar fliken Hantera.

  2. Välj Anslutningar längst ned i fönstret och sedan +Ny.

    Knappar för att skapa en ny anslutning

  3. I fönstret Ny länkad tjänst väljer du Data Store>Azure Blob Storage och väljer sedan Continue.

    Välj "Azure Blob Storage"-rutan

  4. För Lagringskontonamn väljer du namnet i listan och väljer sedan Spara.

    Fält för att ange namnet på lagringskontot

Skapa en på begäran länkad HDInsight-tjänst

  1. Välj knappen +Ny igen för att skapa ytterligare en länkad tjänst.

  2. I fönstret Ny länkad tjänst väljer du Compute>Azure HDInsight och väljer sedan Continue.

    < c1 >< c0 >< sb0 > Välja "Azure HDInsight"-panelen

  3. Utför följande steg i fönstret New Linked Service (Ny länkad tjänst):

    a. Som Namn anger du AzureHDInsightLinkedService.

    b. För Typ kontrollerar du att HDInsight på begäran är valt.

    c. För Azure Storage Länkad tjänst väljer du AzureBlobStorage1. Du skapade den här länkade tjänsten tidigare. Ange rätt namn här om du tidigare använde ett annat namn.

    d. För Klustertyp väljer du spark.

    e. För tjänsthuvudnamn-ID anger du ID:t för tjänsthuvudmannen som har behörighet att skapa ett HDInsight-kluster.

    Tjänstens huvudnamn måste vara medlem i rollen Deltagare för prenumerationen eller resursgruppen som klustret har skapats i. Mer information finns i Skapa ett Microsoft Entra program och tjänstens huvudnamn. Tjänstens huvudnamns-ID motsvarar program-ID:t och en huvudnyckel för tjänsten motsvarar värdet för en klienthemlighet.

    f. Ange nyckeln för tjänstens huvudnyckel.

    g. Välj samma resursgrupp som du använde när du skapade datafabriken i Resursgrupp. Spark-klustret skapas i den här resursgruppen.

    h. Expandera OS-typ.

    i. Ange ett namn som klusteranvändarnamn.

    j. Ange användarens klusterlösenord.

    k. Välj Slutför.

    Inställningar för länkad HDInsight-tjänst

Kommentar

Azure HDInsight begränsar det totala antalet kärnor som du kan använda i varje Azure region som stöds. För den länkade HDInsight-tjänsten på begäran skapas HDInsight-klustret på samma Azure Storage plats som används som primär lagringsplats. Se till att du har tillräckligt med kärnkvoter så att klustret kan skapas framgångsrikt. Mer information finns i Set up clusters in HDInsight with Hadoop, Spark, Kafka, and more (Konfigurera kluster i HDInsight med Hadoop, Spark, Kafka med mera).

Skapa en pipeline

  1. Välj knappen + (plus) och sedan Pipeline från menyn.

    Knappar för att skapa en ny pipeline

  2. Gå till verktygsfältet Aktiviteter och expandera HDInsight. Dra aktiviteten Spark från verktygsfältet Aktiviteter till pipelinedesignytan.

    Dra och släpp Spark-aktiviteten

  3. Utför följande steg i egenskaperna för Spark-aktivitetsfönstret längst ned:

    a. Växla till fliken HDI-kluster.

    b. Välj AzureHDInsightLinkedService (som du skapade i föregående procedur).

    Ange den länkade HDInsight-tjänsten

  4. Växla till fliken Skript/Jar och utför följande steg:

    a. För Job Linked Service väljer du AzureBlobStorage1.

    b. Välj Bläddra i lagring.

    Ange Spark-skriptet på

    c. Bläddra till mappen adftutorial/spark/script, välj WordCount_Spark.py och välj sedan Slutför.

  5. Verifiera pipelinen genom att välja knappen Verifiera i verktygsfältet. Klicka på knappen >> (högerpil) för att stänga verifieringsfönstret.

  6. Välj Publicera alla. Användargränssnittet för Data Factory publicerar entiteter (länkade tjänster och pipeline) till Azure Data Factory-tjänsten.

Utlös en pipelinekörning

Välj Lägg till utlösare i verktygsfältet och välj sedan Utlösa nu.

Övervaka pipelinekörningen

  1. Växla till fliken Övervaka . Bekräfta att du ser en pipelinekörning. Det tar ungefär 20 minuter att skapa ett Spark-kluster.

  2. Klicka på Uppdatera då och då så att du ser pipelinekörningens status.

    Flik för övervakning av pipelinekörningar med

  3. För att se aktivitetskörningar som är kopplade till pipelinekörningen, välj Visa aktivitetskörningar i kolumnen Åtgärder.

    Status för pipeline-körning

    Du kan växla tillbaka till pipelinekörningsvyn genom att välja länken Alla pipelinekörningar högst upp.

Verifiera resultatet

Verifiera att utdatafilen har skapats i mappen spark/otuputfiles/wordcount för containern adftutorial.

Plats för utdatafilen

Filen bör ha alla ord från indatafilen samma antal gånger som ordet förekommer i filen. Till exempel:

(u'This', 1)
(u'a', 1)
(u'is', 1)
(u'test', 1)
(u'file', 1)

Denna exempel-pipeline transformerar data med en Spark-aktivitet och en länkad HDInsight-tjänst vid behov. Du har lärt dig att:

  • Skapa en datafabrik.
  • Skapa en pipeline som använder en Spark-aktivitet.
  • Utlös en pipelinekörning.
  • Övervaka pipelinekörningen.

Om du vill lära dig hur du transformerar data genom att köra ett Hive-skript på ett Azure HDInsight kluster som finns i ett virtuellt nätverk går du vidare till nästa självstudie: