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:
İşlem hattı Etkinlikleri bölmesinde Spark'ı arayın ve spark etkinliğini işlem hattı tuvaline sürükleyin.
Henüz seçili değilse tuvaldeki yeni Spark etkinliğini seçin.
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.
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 ö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
İlgili içerik
Verileri başka şekillerde dönüştürmeyi açıklayan aşağıdaki makalelere bakın: