تحويل البيانات باستخدام نشاط Spark في Azure Data Factory وتحليلات Synapse
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
ينفذ نشاط Spark في مصنع بيانات و البنية الأساسية لبرنامج ربط العمليات التجارية بـ Synapse برنامج Spark على نظام مجموعة HDInsight الخاصة بك أو عند الطلب . تعتمد هذه المقالة على مقالة أنشطة تحويل البيانات، والتي تقدم نظرة عامة على تحويل البيانات وأنشطة التحويل المدعومة. عند استخدام خدمة Spark المرتبطة عند الطلب، تقوم الخدمة تلقائياً بإنشاء نظام مجموعة Spark لك في الوقت المناسب لمعالجة البيانات ثم تحذف نظام المجموعة بمجرد اكتمال المعالجة.
إضافة نشاط Spark إلى البنية الأساسية باستخدام واجهة المستخدم
لاستخدام نشاط Spark في البنية الأساسية، أكمل الخطوات التالية:
ابحث عن Spark في جزء أنشطة البنية الأساسية، واسحب نشاط Spark إلى لوحة البنية الأساسية.
حدد نشاط Spark الجديد على اللوحة إذا لم يكن محددًا بالفعل.
حدد علامة التبويب HDI Cluster لتحديد أو إنشاء خدمة مرتبطة جديدة إلى مجموعة HDInsight التي سيتم استخدامها لتنفيذ نشاط Spark.
حدد علامة التبويب Script / Jar لتحديد أو إنشاء خدمة مرتبطة بوظيفة جديدة إلى حساب Azure Storage الذي سيستضيف البرنامج النصي الخاص بك. حدد مسارًا إلى الملف الذي سيتم تنفيذه هناك. يمكنك أيضًا تكوين التفاصيل المتقدمة بما في ذلك مستخدم وكيل وتكوين تصحيح الأخطاء والوسيطات ومعلمات تكوين Spark ليتم تمريرها إلى البرنامج النصي.
خصائص نشاط Spark
هذا هو تعريف JSON عينة من نشاط 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"
]
}
}
يصف الجدول التالي خصائص JSON المستخدمة في تعريف JSON:
الخاصية | الوصف | مطلوب |
---|---|---|
الاسم | اسم النشاط في التدفق. | نعم |
الوصف | نص يصف ما يفعله النشاط. | لا |
النوع | بالنسبة لنشاط Spark، يكون نوع النشاط HDInsightSpark. | نعم |
linkedServiceName | اسم خدمة HDInsight Spark Linked التي يعمل عليها برنامج Spark. للتعرف على هذه الخدمة المرتبطة، راجع مقالة خدمات الحوسبة المرتبطة. | نعم |
SparkJobLinkedService | خدمة Azure Storage المرتبطة التي تحتوي على ملف وظيفة Spark والتبعيات والسجلات. يتم دعم Azure Blob Storage والخدمات المرتبطة بـ ADLS Gen2 فقط هنا. إذا لم تقم بتحديد قيمة لهذه الخاصية، يتم استخدام التخزين المقترنة مع نظام المجموعة HDInsight. يمكن أن تكون قيمة هذه الخاصية فقط مرتبطة في خدمة تخزين Azure. | لا |
rootPath | حاوية ومجلد Azure Blob الذي يحتوي على الملف Spark. اسم الملف حساس لحالة الأحرف. راجع قسم بنية المجلد (القسم التالي) للحصول على تفاصيل حول بنية هذا المجلد. | نعم |
entryFilePath | المسار النسبي للمجلد جذر رمز/حزمة Spark. يجب أن يكون ملف الإدخال ملف Python أو ملف .jar. | نعم |
className | تطبيق Java / Spark الطبقة الرئيسية | لا |
الحجج | قائمة وسيطات سطر الأوامر إلى برنامج Spark. | لا |
proxyUser | حساب المستخدم للانتحال لتنفيذ برنامج Spark | لا |
sparkConfig | حدد قيم خصائص Spark configuration المدرجة في الموضوع: Spark Configuration - خصائص التطبيق . | لا |
getDebugInfo | تحديد متى يتم نسخ ملفات سجل Spark إلى مخزن Azure المستخدم بواسطة مجموعة HDInsight (أو) المحددة بواسطة sparkJobLinkedService. القيم المسموح بها: بلا، دوماً، أو فشل. القيمة الافتراضية: بلا. | لا |
بنية المجلد
تعد وظائف Spark أكثر قابلية للتوسع من وظائف Pig/Apache Hive. بالنسبة إلى وظائف Spark، يمكنك توفير تبعيات متعددة مثل حزم jar (الموضوعة في java CLASSPATH) وملفات Python (الموضوعة في PYTHONPATH) وأي ملفات أخرى.
إنشاء بنية المجلد التالية في تخزين Azure Blob المشار إليها بواسطة خدمة ربط HDInsight. بعد ذلك، قم بتحميل الملفات التابعة إلى المجلدات الفرعية المناسبة في المجلد الجذر الذي يمثله entryFilePath. على سبيل المثال، قم بتحميل ملفات Python إلى المجلد الفرعي pyFiles وملفات jar إلى مجلد jars الفرعي للمجلد الجذر. في وقت التشغيل، تتوقع الخدمة بنية المجلد التالية في تخزين Azure Blob:
المسار | الوصف | مطلوب | نوع |
---|---|---|---|
. (جذر) |
المسار الجذر لوظيفة Spark في خدمة التخزين المرتبطة | نعم | مجلد |
<معرّف المستخدم> | المسار الذي يشير إلى ملف إدخال وظيفة Spark | نعم | الملف |
./jars | يتم تحميل جميع الملفات الموجودة ضمن هذا المجلد ووضعها في Java classpath الخاص بنظام المجموعة. | لا | مجلد |
ملفات ./pyFiles | يتم تحميل جميع الملفات الموجودة ضمن هذا المجلد ووضعها في PYTHONPATH الخاص بنظام المجموعة | لا | مجلد |
./files | يتم تحميل جميع الملفات الموجودة ضمن هذا المجلد ووضعها على دليل المشغَّل | لا | مجلد |
./archives | جميع الملفات الموجودة تحت هذا المجلد غير مضغوطة | لا | مجلد |
./logs | المجلد الذي يحتوي على سجلات من نظام المجموعة Spark. | لا | مجلد |
فيما يلي مثال على وحدة تخزين تحتوي على ملفي وظيفة Spark في تخزين Azure Blob المشار إليه بواسطة خدمة 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
المحتوى ذو الصلة
راجع المقالات التالية التي تشرح كيفية تحويل البيانات بطرق أخرى: