Mengubah data menggunakan aktivitas Spark di Azure Data Factory dan Azure Synapse Analytics

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Aktivitas Spark di pabrik data dan alur Synapse menjalankan program Spark di kluster HDInsight Anda sendiri atau sesuai permintaan. Artikel ini membangun artikel aktivitas transformasi data, yang menyajikan gambaran umum tentang transformasi data dan aktivitas transformasi yang didukung. Ketika Anda menggunakan layanan terkait Spark sesuai permintaan, layanan secara otomatis membuat kluster Spark untuk Anda tepat waktu untuk memproses data lalu menghapus kluster setelah pemrosesan selesai.

Menambahkan aktivitas Spark ke alur dengan UI

Untuk menggunakan aktivitas Spark ke alur, selesaikan langkah-langkah berikut:

  1. Cari Spark di panel Aktivitas alur, dan seret aktivitas Spark ke kanvas alur.

  2. Pilih aktivitas Spark baru di kanvas jika belum dipilih.

  3. Pilih tab Kluster HDI untuk memilih atau membuat layanan tertaut baru ke kluster HDInsight yang akan digunakan untuk menjalankan aktivitas Spark.

    Shows the UI for a Spark activity.

  4. Pilih tab Script / Jar untuk memilih atau membuat layanan tertaut pekerjaan baru ke akun Azure Storage yang akan menghosting skrip Anda. Tentukan jalur ke file yang akan dieksekusi di sana. Anda juga dapat mengonfigurasi detail tingkat lanjut termasuk pengguna proksi, konfigurasi debug, dan argumen serta parameter konfigurasi Spark yang akan diteruskan ke skrip.

    Shows the UI for the Script / Jar tab for a Spark activity.

Properti aktivitas Spark

Berikut adalah sampel definisi JSON dengan Aktivitas Spark:

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

Tabel berikut menjelaskan properti JSON yang digunakan dalam definisi JSON:

Properti Deskripsi Wajib
nama Nama aktivitas di dalam alur. Ya
description Teks yang menjelaskan apa yang dilakukan aktivitas. Tidak
jenis Untuk Spark Activity, jenis aktivitasnya adalah HDInsightSpark. Ya
linkedServiceName Nama Layanan Tertaut HDInsight Spark tempat program Spark berjalan. Untuk mempelajari layanan tertaut ini, lihat artikel Layanan tertaut komputasi. Ya
SparkJobLinkedService Layanan tertaut Microsoft Azure Storage yang menyimpan file pekerjaan, dependensi, dan log Spark. Hanya layanan tertaut Azure Blob Storage dan ADLS Gen2 yang didukung di sini. Jika Anda tidak menentukan nilai untuk properti ini, penyimpanan yang terkait dengan kluster HDInsight digunakan. Nilai properti ini hanya dapat menjadi layanan tertaut Azure Storage. Tidak
rootPath Kontainer dan folder Azure Blob yang berisi file Spark. Nama file peka huruf besar/kecil. Lihat bagian struktur folder (bagian berikutnya) untuk detail tentang struktur folder ini. Ya
entryFilePath Jalur relatif ke folder akar dari kode/paket Spark. File entri harus berupa file Python atau file .jar. Ya
className Kelas utama Java/Spark aplikasi Tidak
arguments Daftar argumen baris perintah ke program Spark. Tidak
proxyUser Akun pengguna untuk menyamar untuk menjalankan program Spark Tidak
sparkConfig Tentukan nilai untuk properti konfigurasi Spark yang tercantum dalam topik: Konfigurasi Spark - Properti aplikasi. Tidak
getDebugInfo Menentukan kapan file log Spark disalin ke penyimpanan Azure yang digunakan oleh kluster HDInsight (atau) ditentukan oleh sparkJobLinkedService. Nilai yang diizinkan: None, Always, atau Failure. Nilai default: None. Tidak

Struktur folder

Pekerjaan Spark juga lebih luas daripada pekerjaan Pig/Apache Hive. Untuk pekerjaan Spark, Anda dapat menyediakan beberapa dependensi seperti paket jar (ditempatkan di Java CLASSPATH), file Python (ditempatkan di PYTHONPATH), dan file lainnya.

Buat struktur folder berikut dalam penyimpanan Azure Blob yang direferensikan oleh layanan tertaut HDInsight. Kemudian, unggah file dependen ke subfolder yang sesuai di folder akar yang diwakili oleh entryFilePath. Misalnya, unggah file Python ke subfolder pyFiles dan file jar ke subfolder jar pada folder akar. Pada runtime, layanan mengharapkan struktur folder berikut dalam penyimpanan Azure Blob:

Jalur Deskripsi Wajib Tipe
. (akar) Jalur akar pekerjaan Spark di layanan penyimpanan yang ditautkan Ya Folder
<pengguna didefinisikan > Jalur yang menunjuk ke file entri pekerjaan Spark Ya File
./jars Semua file di bagian folder ini diunggah dan ditempatkan di classpath Java dari kluster Tidak Folder
./pyFiles Semua file di bawah folder ini diunggah dan ditempatkan pada PYTHONPATH kluster Tidak Folder
./file Semua file di bawah folder ini diunggah dan ditempatkan pada direktori kerja pelaksana Tidak Folder
./arsip Semua file di bawah folder ini tidak dipadatkan Tidak Folder
./logs Folder yang berisi log dari kluster Spark. Tidak Folder

Berikut adalah contoh untuk penyimpanan yang berisi dua file pekerjaan Spark dalam Azure Blob Storage yang dirujuk oleh layanan tertaut 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
	

Lihat artikel berikut yang menjelaskan cara mentransformasikan data dengan cara lain: