Sdílet prostřednictvím


Transformace dat pomocí aktivity Sparku v Azure Data Factory a Synapse Analytics

APPLIES TO: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Aktivita Sparku v datové továrně a kanálech Synapse spouští program Spark ve vašem vlastním clusteru HDInsight nebo clusteru HDInsight na vyžádání. Tento článek vychází z článku o aktivitách transformace dat, který představuje obecný přehled transformace dat a podporovaných transformačních aktivit. Když používáte propojenou službu Sparku na vyžádání, služba automaticky vytvoří Spark cluster právě včas pro okamžité zpracování dat a po dokončení zpracování tento cluster odstraní.

Přidání aktivity Sparku do potrubí s využitím uživatelského rozhraní

Pokud chcete pro kanál použít aktivitu Sparku, proveďte následující kroky:

  1. Vyhledejte Spark v podokně Aktivity kanálu a přetáhněte aktivitu Sparku na plátno kanálu.

  2. Pokud ještě není vybraná, vyberte na plátně novou aktivitu Sparku.

  3. Výběrem karty Cluster HDI vyberte nebo vytvořte novou propojenou službu s clusterem HDInsight, který se použije ke spuštění aktivity Spark.

    Zobrazuje uživatelské rozhraní pro aktivitu Sparku.

  4. Vyberte kartu Script / Jar a vyberte nebo vytvořte novou propojenou službu úlohy s účtem Azure Storage, který bude hostovat váš skript. Zadejte cestu k souboru, který se tam má spustit. Můžete také nakonfigurovat pokročilé podrobnosti, včetně uživatele proxy serveru, konfigurace ladění a argumentů a parametrů konfigurace Sparku, které se mají předat skriptu.

    Zobrazuje uživatelské rozhraní pro kartu Script /Jar pro aktivitu Sparku.

Vlastnosti aktivity Sparku

Tady je ukázková definice JSON aktivity Sparku:

{
    "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"
        ]
    }
}

Následující tabulka popisuje vlastnosti JSON použité v definici JSON:

Vlastnost Popis Povinné
název Název aktivity v kanálu Ano
popis Text popisující, co aktivita dělá. Ne
typ U aktivity Sparku je typ aktivity HDInsightSpark. Ano
název propojené služby Název propojené služby HDInsight Spark, na které běží program Spark. Další informace o této propojené službě najdete v článku o propojených službách Compute. Ano
SparkJobLinkedService Propojená služba Azure Storage, která obsahuje soubor úlohy Spark, závislosti a protokoly. Tady jsou podporované jenom Azure Blob Storage a ADLS Gen2 propojené služby. Pokud pro tuto vlastnost nezadáte hodnotu, použije se úložiště přidružené ke clusteru HDInsight. Hodnota této vlastnosti může být pouze Azure Storage propojená služba. Ne
rootPath Kontejner objektů blob a složka Azure obsahující soubor Spark. V názvu souboru se rozlišují malá a velká písmena. Podrobnosti o struktuře této složky najdete v části struktura složek (další oddíl). Ano
entryFilePath Relativní cesta ke kořenové složce kódu/balíčku Spark. Vstupní soubor musí být buď Python soubor, nebo .jar soubor. Ano
jménoTřídy (className) Hlavní třída aplikace Java/Spark Ne
argumenty Seznam argumentů příkazového řádku pro program Spark. Ne
proxyUser Uživatelský účet, který se má zosobnit pro spuštění programu Spark Ne
SparkConfig Zadejte hodnoty pro vlastnosti konfigurace Sparku uvedené v tématu: Konfigurace Sparku – Vlastnosti aplikace. Ne
getDebugInfo Určuje, kdy se soubory záznamů Sparku zkopírují do Azure úložiště používaného clusterem HDInsight nebo určeném službou sparkJobLinkedService. Povolené hodnoty: Žádné, Vždy nebo Selhání. Výchozí hodnota: Žádný. Ne

Struktura složek

Úlohy Sparku jsou rozšiřitelnější než úlohy Pig/Hive. Pro úlohy Sparku můžete zadat více závislostí, jako jsou balíčky JAR (umístěné v Java CLASSPATH), Python soubory (umístěné v PYTHONPATH) a všechny ostatní soubory.

Ve službě Azure Blob Storage, na kterou odkazuje propojená služba HDInsight, vytvořte následující strukturu složek. Potom nahrajte závislé soubory do příslušných podsložek v kořenové složce reprezentované entryFilePath. Například nahrajte Python soubory do podsložky pyFiles a souborů JAR do podsložky jar kořenové složky. Za běhu služba očekává následující strukturu složek ve službě Azure Blob Storage:

Cesta Popis Povinné Typ
. (kořen) Kořenová cesta úlohy Sparku ve službě propojeného úložiště Ano Složka
<definovaný uživatelem > Cesta odkazující na vstupní soubor úlohy Sparku Ano Soubor
./jars Všechny soubory v této složce se nahrají a umístí na classpath Javy v rámci clusteru. Ne Složka
./pyFiles Všechny soubory v této složce jsou nahrány a umístěny na PYTHONPATH clusteru. Ne Složka
./soubory Všechny soubory v této složce se nahrají a umístí do pracovního adresáře exekutoru. Ne Složka
./archiv Všechny soubory v této složce jsou nekomprimované. Ne Složka
./logy Složka, která obsahuje protokoly z clusteru Spark. Ne Složka

Tady je příklad úložiště obsahující dva soubory úloh Sparku v Azure Blob Storage odkazované propojenou službou HDInsight.

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
	

Podívejte se na následující články, které vysvětlují, jak transformovat data jinými způsoby: