Aracılığıyla paylaş


Azure Data Factory ve Synapse Analytics'te Spark etkinliğini kullanarak verileri dönüştürme

GEÇERLİDİR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Veri fabrikası ve Synapse işlem hatlarındaki Spark etkinliği, Spark programını kendi veya isteğe bağlı HDInsight kümenizde yürütür. Bu makale , veri dönüştürme ve desteklenen dönüştürme etkinliklerine genel bir genel bakış sunan veri dönüştürme etkinlikleri makalesini oluşturur. İsteğe bağlı Bir Spark bağlı hizmeti kullandığınızda, hizmet verileri tam zamanında işlemeniz için otomatik olarak bir Spark kümesi oluşturur ve işlem tamamlandıktan sonra kümeyi siler.

Kullanıcı arabirimiyle işlem hattına Spark etkinliği ekleme

İşlem hattında Spark etkinliği kullanmak için aşağıdaki adımları tamamlayın:

  1. İşlem hattı Etkinlikleri bölmesinde Spark'ı arayın ve spark etkinliğini işlem hattı tuvaline sürükleyin.

  2. Henüz seçili değilse tuvaldeki yeni Spark etkinliğini seçin.

  3. Spark etkinliğini yürütmek için kullanılacak bir HDInsight kümesine bağlı yeni bir hizmet seçmek veya oluşturmak için HDI Kümesi sekmesini seçin.

    Spark etkinliğinin kullanıcı arabirimini gösterir.

  4. Script / Jar sekmesini seçerek, betiğinizi barındıracak bir Azure Depolama hesabına bağlanmış yeni bir iş hizmeti seçebilir veya oluşturabilirsiniz. Orada yürütülecek dosyanın yolunu belirtin. Ayrıca, bir proxy kullanıcısı, hata ayıklama yapılandırması, bağımsız değişkenler ve Spark yapılandırma parametreleri dahil olmak üzere ileri düzey ayrıntıları betiğe iletilecek şekilde yapılandırabilirsiniz.

    Spark etkinliği için Betik / Jar sekmesinin kullanıcı arabirimini gösterir.

Spark etkinliği özellikleri

Spark Etkinliğinin örnek JSON tanımı aşağıda verilmiştir:

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

Aşağıdaki tabloda JSON tanımında kullanılan JSON özellikleri açıklanmaktadır:

Özellik Açıklama Gerekli
Adı İşlem hattındaki etkinliğin adı. Yes
açıklama Etkinliğin ne yaptığını açıklayan metin. Hayır
Tip Spark Etkinliği için etkinlik türü HDInsightSpark'tır. Yes
bağlantılıHizmetAdı Spark programının üzerinde çalıştığı HDInsight Spark Bağlı Hizmeti'nin adı. Bu bağlı hizmet hakkında bilgi edinmek için Compute bağlı hizmetler makalesine bakın. Yes
SparkJobLinkedService Spark iş dosyasını, bağımlılıklarını ve günlüklerini barındıran Azure Depolama bağlı hizmeti. Burada yalnızca Azure Blob Depolama ve ADLS Gen2 bağlı hizmetleri desteklenir. Bu özellik için bir değer belirtmezseniz, HDInsight kümesiyle ilişkili depolama alanı kullanılır. Bu özelliğin değeri yalnızca bir Azure Depolama bağlantılı hizmet olabilir. Hayır
kökDizin Spark dosyasını içeren Azure Blob kapsayıcısı ve klasörü. Dosya adı büyük/küçük harfe duyarlıdır. Bu klasörün yapısı hakkında ayrıntılı bilgi için klasör yapısı bölümüne (sonraki bölüm) bakın. Yes
girişDosyaYolu Spark kodunun/paketinin kök klasörünün göreli yolu. Giriş dosyası bir Python dosyası veya .jar dosyası olmalıdır. Yes
className Uygulamanın Java/Spark ana sınıfı Hayır
Bağımsız değişken Spark programı için komut satırı bağımsız değişkenlerinin listesi. Hayır
proxyUser Spark programını yürütmek için kimliğine bürünülecek kullanıcı hesabı Hayır
sparkConfig Konu başlığında listelenen Spark yapılandırma özellikleri için değerleri belirtin: Spark Yapılandırması - Uygulama özellikleri. Hayır
getDebugInfo Spark günlük dosyalarının sparkJobLinkedService tarafından belirtilen HDInsight kümesi (veya) tarafından kullanılan Azure depolama alanına ne zaman kopyalandığı belirtir. İzin verilen değerler: Yok, Her Zaman veya Hata. Varsayılan değer: Hiçbiri. Hayır

Klasör yapısı

Spark işleri, Pig/Hive işlerinden daha fazla genişletilebilir. Spark işleri için jar paketleri (Java CLASSPATH'e yerleştirilmiş), Python dosyaları (PYTHONPATH'e yerleştirilmiş) ve diğer tüm dosyalar gibi birden çok bağımlılık sağlayabilirsiniz.

HDInsight bağlı hizmeti tarafından başvuruda bulunan Azure Blob depolama alanında aşağıdaki klasör yapısını oluşturun. Ardından, bağımlı dosyaları entryFilePath ile temsil edilen kök klasördeki uygun alt klasörlere yükleyin. Örneğin, Python dosyalarını pyFiles alt klasörüne, jar dosyalarını ise kök klasörün jars alt klasörüne yükleyin. Çalışma zamanında hizmet, Azure Blob depolamada aşağıdaki klasör yapısını bekler:

Yol Açıklama Gerekli Tür
. (kök dizin) Depolama bağlantılı hizmetindeki Spark görevinin kök yolu Yes Klasör
<kullanıcı tanımlı > Spark işinin giriş dosyasını gösteren yol Yes Dosya
./jars Bu klasörün altındaki tüm dosyalar karşıya yüklenir ve kümenin Java sınıfyolu (classpath) üzerine yerleştirilir. Hayır Klasör
./pyFiles Bu dizin altındaki tüm dosyalar yüklenir ve kümenin PYTHONPATH'ine yerleştirilir. Hayır Klasör
./files Bu klasörün altındaki tüm dosyalar karşıya yüklenir ve yürütücü çalışma dizinine yerleştirilir Hayır Klasör
./Arşiv Bu klasörün altındaki tüm dosyalar sıkıştırılmamış Hayır Klasör
./loglar Spark kümesindeki günlükleri içeren klasör. Hayır Klasör

HdInsight bağlı hizmeti tarafından başvurulan Azure Blob Depolama içerisinde bulunan iki Spark iş dosyasını içeren bir depolama örneği aşağıda verilmiştir.

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
	

Verileri başka şekillerde dönüştürmeyi açıklayan aşağıdaki makalelere bakın: