Transformera data med Spark-aktivitet i Azure Data Factory och Synapse Analytics
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Spark-aktiviteten i en datafabrik och Synapse-pipelines kör ett Spark-program på eget eller på begäran HDInsight-kluster. Den här artikeln bygger på artikeln om datatransformeringsaktiviteter , som visar en allmän översikt över datatransformering och de omvandlingsaktiviteter som stöds. När du använder en länkad Spark-tjänst på begäran skapar tjänsten automatiskt ett Spark-kluster som du just-in-time kan bearbeta data och sedan tar bort klustret när bearbetningen är klar.
Lägga till en Spark-aktivitet i en pipeline med användargränssnittet
Utför följande steg för att använda en Spark-aktivitet till en pipeline:
Sök efter Spark i fönstret Pipelineaktiviteter och dra en Spark-aktivitet till pipelinearbetsytan.
Välj den nya Spark-aktiviteten på arbetsytan om den inte redan är markerad.
Välj fliken HDI-kluster för att välja eller skapa en ny länkad tjänst till ett HDInsight-kluster som ska användas för att köra Spark-aktiviteten.
Välj fliken Skript/Jar för att välja eller skapa en ny jobblänkningstjänst till ett Azure Storage-konto som ska vara värd för skriptet. Ange en sökväg till filen som ska köras där. Du kan också konfigurera avancerad information, inklusive en proxyanvändare, felsökningskonfiguration och argument och Spark-konfigurationsparametrar som ska skickas till skriptet.
Egenskaper för Spark-aktivitet
Här är JSON-exempeldefinitionen för en Spark-aktivitet:
{
"name": "Spark Activity",
"description": "Description",
"type": "HDInsightSpark",
"linkedServiceName": {
"referenceName": "MyHDInsightLinkedService",
"type": "LinkedServiceReference"
},
"typeProperties": {
"sparkJobLinkedService": {
"referenceName": "MyAzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"rootPath": "adfspark",
"entryFilePath": "test.py",
"sparkConfig": {
"ConfigItem1": "Value"
},
"getDebugInfo": "Failure",
"arguments": [
"SampleHadoopJobArgument1"
]
}
}
I följande tabell beskrivs de JSON-egenskaper som används i JSON-definitionen:
Property | Beskrivning | Obligatoriskt |
---|---|---|
name | Namnet på aktiviteten i pipelinen. | Ja |
description | Text som beskriver vad aktiviteten gör. | Nej |
type | För Spark-aktivitet är aktivitetstypen HDInsightSpark. | Ja |
linkedServiceName | Namnet på den länkade HDInsight Spark-tjänsten som Spark-programmet körs på. Mer information om den här länkade tjänsten finns i artikeln Compute linked services (Beräkningslänkade tjänster ). | Ja |
SparkJobLinkedService | Den länkade Azure Storage-tjänsten som innehåller Spark-jobbfilen, beroenden och loggar. Här stöds endast Azure Blob Storage- och ADLS Gen2-länkade tjänster. Om du inte anger något värde för den här egenskapen används lagringen som är associerad med HDInsight-klustret. Värdet för den här egenskapen kan bara vara en länkad Azure Storage-tjänst. | Nej |
rootPath | Azure Blob-containern och mappen som innehåller Spark-filen. Filnamnet är skiftlägeskänsligt. Mer information om strukturen för den här mappen finns i avsnittet mappstruktur (nästa avsnitt). | Ja |
entryFilePath | Relativ sökväg till rotmappen för Spark-koden/-paketet. Postfilen måste antingen vara en Python-fil eller en .jar fil. | Ja |
className | Programmets Java/Spark-huvudklass | Nej |
Argument | En lista över kommandoradsargument till Spark-programmet. | Nej |
proxyAnvändare | Användarkontot som ska personifieras för att köra Spark-programmet | Nej |
sparkConfig | Ange värden för Spark-konfigurationsegenskaper som anges i avsnittet: Spark-konfiguration – Programegenskaper. | Nej |
getDebugInfo | Anger när Spark-loggfilerna kopieras till Azure Storage som används av HDInsight-klustret (eller) som anges av sparkJobLinkedService. Tillåtna värden: Ingen, Alltid eller Fel. Standardvärde: Ingen. | Nej |
Mappstrukturen
Spark-jobb är mer utökningsbara än Pig/Hive-jobb. För Spark-jobb kan du ange flera beroenden, till exempel jar-paket (placerade i Java CLASSPATH), Python-filer (placerade på PYTHONPATH) och andra filer.
Skapa följande mappstruktur i Azure Blob Storage som refereras av den länkade HDInsight-tjänsten. Ladda sedan upp beroende filer till lämpliga undermappar i rotmappen som representeras av entryFilePath. Du kan till exempel ladda upp Python-filer till undermappen pyFiles och jar-filer till jars-undermappen för rotmappen. Vid körning förväntar sig tjänsten följande mappstruktur i Azure Blob Storage:
Sökväg | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
. (rot) |
Rotsökvägen för Spark-jobbet i den länkade lagringstjänsten | Ja | Mapp |
<användardefinierad > | Sökvägen som pekar på startfilen för Spark-jobbet | Ja | Fil |
./burkar | Alla filer under den här mappen laddas upp och placeras på Java-klassökvägen i klustret | Nej | Mapp |
./pyFiles | Alla filer under den här mappen laddas upp och placeras på PYTHONPATH i klustret | Nej | Mapp |
./filer | Alla filer under den här mappen laddas upp och placeras i arbetskatalogen för executor | Nej | Mapp |
./arkiv | Alla filer under den här mappen är okomprimerade | Nej | Mapp |
./Loggar | Mappen som innehåller loggar från Spark-klustret. | Nej | Mapp |
Här är ett exempel på en lagring som innehåller två Spark-jobbfiler i Azure Blob Storage som refereras av den länkade HDInsight-tjänsten.
SparkJob1
main.jar
files
input1.txt
input2.txt
jars
package1.jar
package2.jar
logs
archives
pyFiles
SparkJob2
main.py
pyFiles
scrip1.py
script2.py
logs
archives
jars
files
Relaterat innehåll
Se följande artiklar som förklarar hur du transformerar data på andra sätt: