Adatok átalakítása Spark-tevékenység használatával a Azure Data Factory és a Synapse Analyticsben

Vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Data Factory a Microsoft Fabric a Azure Data Factory következő generációja, egyszerűbb architektúrával, beépített AI-vel és új funkciókkal. Ha még nem ismerkedik az adatintegrációval, kezdje a Fabric Data Factoryvel. A meglévő ADF-számítási feladatok frissíthetők Fabric használatával, hogy elérjék az adatkutatás, a valós idejű elemzés és a jelentéskészítés új képességeit.

A Spark-tevékenység egy adatgyárban és a Synapse-pipeline-okban egy Spark-programot hajt végre saját vagy igény szerinti HDInsight-fürtön. Ez a cikk az adatátalakítási tevékenységekről szóló cikkre épül, amely általános áttekintést nyújt az adatátalakításról és a támogatott átalakítási tevékenységekről. Igény szerinti Spark-társított szolgáltatás használatakor a szolgáltatás automatikusan létrehoz egy Spark-fürtöt az adatok feldolgozásához, majd a feldolgozás befejezése után törli a fürtöt.

Felhasználói felülettel rendelkező Spark-tevékenység hozzáadása egy folyamathoz

Ha Spark-tevékenységet szeretne használni egy folyamathoz, hajtsa végre a következő lépéseket:

  1. Keresse meg a Sparkot a folyamattevékenységek panelen, és húzzon egy Spark-tevékenységet a folyamatvászonra.

  2. Jelölje ki az új Spark-tevékenységet a vásznon, ha még nincs kijelölve.

  3. A HDI-fürt lapon válassza ki vagy hozzon létre egy új társított szolgáltatást egy HDInsight-fürthöz, amely a Spark-tevékenység végrehajtásához lesz használva.

    Egy Spark-tevékenység felhasználói felületét jeleníti meg.

  4. Válassza a Script/Jar lapot egy új, a szkriptet futtató Azure Storage-fiókhoz társított szolgáltatás kiválasztásához vagy létrehozásához. Adja meg az ott végrehajtandó fájl elérési útját. Speciális részleteket is konfigurálhat, például proxyfelhasználót, hibakeresési konfigurációt, valamint argumentumokat és Spark-konfigurációs paramétereket, hogy átadják a szkriptnek.

    Egy Spark-tevékenység Szkript/Jar lapjának felhasználói felületét jeleníti meg.

Spark-tevékenység tulajdonságai

Íme a Spark-tevékenység JSON-mintadefiníciója:

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

Az alábbi táblázat a JSON-definícióban használt JSON-tulajdonságokat ismerteti:

Tulajdonság Leírás Szükséges
név A folyamat tevékenységének neve. Igen
leírás A tevékenység célját leíró szöveg. Nem
típus A Spark-tevékenység esetében a tevékenység típusa a HDInsightSpark. Igen
linkedServiceName (CsatlakoztatottSzolgáltatásNév) Annak a HDInsight Spark társított szolgáltatásnak a neve, amelyen a Spark-program fut. A társított szolgáltatással kapcsolatos további információkért tekintse meg a társított számítási szolgáltatásokról szóló cikket. Igen
SparkJobLinkedService A Spark-feladatfájlt, függőségeket és naplókat tartalmazó Azure Storage társított szolgáltatás. Itt csak Azure Blob Storage és ADLS Gen2 társított szolgáltatások támogatottak. Ha nem ad meg értéket ehhez a tulajdonsághoz, a HDInsight-fürthöz társított tároló lesz használatos. A tulajdonság értéke csak Azure Storage kapcsolt szolgáltatás lehet. Nem
rootPath A Spark-fájlt tartalmazó Azure Blob-tároló és mappa. A fájlnév kis- és nagybetűérzékeny. A mappa szerkezetével kapcsolatos részletekért tekintse meg a mappaszerkezet szakaszát (a következő szakaszt). Igen
entryFilePath A Spark-kód/csomag gyökérmappájának relatív elérési útja. A belépési fájlnak Python vagy .jar fájlnak kell lennie. Igen
className Az alkalmazás Java/Spark főosztálya Nem
Érvek A Spark program parancssori argumentumainak listája. Nem
proxyUser A Spark-program végrehajtásához megszemélyesítendő felhasználói fiók Nem
sparkConfig Adja meg a Spark konfigurációs tulajdonságainak értékeit a következő témakörben: Spark Configuration – Alkalmazástulajdonságok. Nem
getDebugInfo Azt határozza meg, hogy a Spark-naplófájlokat a HDInsight-fürt által használt Azure tárolóba vagy a sparkJobLinkedService által megadott tárolóba másolják. Engedélyezett értékek: Nincs, Mindig vagy Hiba. Alapértelmezett érték: Nincs. Nem

Mappastruktúra

A Spark-feladatok bővíthetőbbek, mint a Pig/Hive feladatok. Spark-feladatok esetén több függőséget is megadhat, például jar-csomagokat (az Java CLASSPATH-ban), Python fájlokat (a PYTHONPATH-on helyezve) és minden más fájlt.

Hozza létre a következő mappastruktúrát a HDInsight társított szolgáltatás által hivatkozott Azure Blob Storage-ban. Ezután töltse fel a függő fájlokat a megfelelő almappákba a entryFilePath által képviselt gyökérmappában. Töltsön fel például Python fájlokat a pyFiles almappába, a jar fájlokat pedig a gyökérmappa Jars almappájába. Futásidőben a szolgáltatás a következő mappastruktúrát várja a Azure Blob Storage-ban:

Elérési útvonal Leírás Szükséges Típus
. (gyökér) A Spark-feladat gyökérútvonala a társított tárolószolgáltatásban Igen Mappa
<felhasználó által definiált > A Spark-feladat belépési fájljára mutató elérési út Igen Fájl
./jars A könyvtárban található összes fájl feltöltve van a fürt Java osztályútvonalára. Nem Mappa
./pyFiles Ebben a mappában lévő összes fájl feltöltve és elhelyezve vannak a fürt PYTHONPATH-ján. Nem Mappa
./Fájlokat A mappa alatti összes fájl feltöltése és elhelyezése a végrehajtó munkakönyvtárában Nem Mappa
./archívum A mappa összes fájlja tömörítetlen Nem Mappa
./logs A Spark-fürt naplóit tartalmazó mappa. Nem Mappa

Íme egy példa egy tárolóra, amely két Spark-feladatfájlt tartalmaz a HDInsight társított szolgáltatás által hivatkozott Azure Blob Storage.

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
	

Tekintse meg az alábbi cikkeket, amelyekből megtudhatja, hogyan alakíthat át adatokat más módokon: