Aracılığıyla paylaş


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

UYGULANANLAR: 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. Betiğinizi barındıracak bir Azure Depolama hesabına yeni bir iş bağlı hizmeti seçmek veya oluşturmak için Betik / Jar sekmesini seçin. 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 gibi gelişmiş ayrıntıları betike geçirilecek ş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
Tür Spark Etkinliği için etkinlik türü HDInsightSpark'tır. Yes
linkedServiceName Spark programının üzerinde çalıştığı HDInsight Spark Bağlı Hizmeti'nin adı. Bu bağlı hizmet hakkında bilgi edinmek için bkz . Bağlı hizmetleri hesaplama makalesi. Yes
SparkJobLinkedService Spark iş dosyasını, bağımlılıklarını ve günlüklerini tutan Azure Depolama bağlı hizmeti. Burada yalnızca Azure Blob Depolama ve ADLS 2. Nesil 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ğlı hizmeti olabilir. Hayır
rootPath 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
entryFilePath 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 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) Depolama bağlı hizmetindeki Spark işinin kök yolu Yes Klasör
<kullanıcı tanımlı > Spark işinin giriş dosyasını gösteren yol Yes Dosya
./Kavanoz Bu klasörün altındaki tüm dosyalar karşıya yüklenir ve kümenin Java sınıf yolu üzerine yerleştirilir Hayır Klasör
./pyFiles Bu klasörün altındaki tüm dosyalar karşıya yüklenir ve kümenin PYTHONPATH'ine yerleştirilir Hayır Klasör
./Dosyaları 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
./Günlük Spark kümesindeki günlükleri içeren klasör. Hayır Klasör

HdInsight bağlı hizmeti tarafından başvuruda bulunılan Azure Blob Depolama iki Spark iş dosyası 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: