إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إشعار
تتناول هذه المقالة الاتصال Databricks لوقت تشغيل Databricks 14.1 والإصدارات الأحدث.
توضح هذه المقالة كيفية تنفيذ الوظائف المعرفة من قبل المستخدم باستخدام الاتصال Databricks ل Scala. تمكنك الاتصال Databricks من توصيل IDEs الشائعة وخوادم دفاتر الملاحظات والتطبيقات المخصصة إلى مجموعات Azure Databricks. للحصول على إصدار Python من هذه المقالة، راجع الدالات المعرفة من قبل المستخدم في Databricks الاتصال ل Python.
إشعار
قبل البدء في استخدام الاتصال Databricks، يجب عليك إعداد عميل الاتصال Databricks.
بالنسبة إلى Databricks Runtime 14.1 والإصدارات الأحدث، يدعم Databricks الاتصال ل Scala تشغيل الوظائف المعرفة من قبل المستخدم (UDFs).
لتشغيل UDF، يجب تحميل الفئة المحولة برمجيا وJARs التي تتطلبها UDF إلى نظام المجموعة.
addCompiledArtifacts() يمكن استخدام واجهة برمجة التطبيقات لتحديد الفئة المحولة برمجيا وملفات JAR التي يجب تحميلها.
إشعار
يجب أن يتطابق Scala المستخدم من قبل العميل مع إصدار Scala على نظام مجموعة Azure Databricks. للتحقق من إصدار Scala لنظام المجموعة، راجع قسم "بيئة النظام" لإصدار Databricks Runtime لنظام المجموعة في إصدارات ملاحظات إصدار Databricks Runtime والتوافق.
يقوم برنامج Scala التالي بإعداد UDF بسيط يضبط القيم في عمود.
import com.databricks.connect.DatabricksSession
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions.{col, udf}
object Main {
def main(args: Array[String]): Unit = {
val sourceLocation = getClass.getProtectionDomain.getCodeSource.getLocation.toURI
val spark = DatabricksSession.builder()
.addCompiledArtifacts(sourceLocation)
.getOrCreate()
def squared(x: Int): Int = x * x
val squared_udf = udf(squared _)
spark.range(3)
.withColumn("squared", squared_udf(col("id")))
.select("squared")
.show()
}
}
في المثال السابق، نظرا لأن UDF مضمن بالكامل داخل Main، تتم إضافة الأداة المحولة Main برمجيا فقط.
إذا كان UDF موزعا على فئات أخرى أو يستخدم مكتبات خارجية (مثل JARs)، يجب أيضا تضمين جميع هذه المكتبات.
عند تهيئة جلسة Spark بالفعل، يمكن تحميل الفئات المجمعة الإضافية وJARs باستخدام spark.addArtifact() واجهة برمجة التطبيقات.
إشعار
عند تحميل JARs، يجب تضمين جميع JARs التبعية العابرة للتحميل. لا تقوم واجهات برمجة التطبيقات بإجراء أي اكتشاف تلقائي للتبعيات العابرة.
واجهات برمجة تطبيقات مجموعة البيانات التي تم كتابتها
تنطبق نفس الآلية الموضحة في القسم السابق ل UDFs أيضا على واجهات برمجة تطبيقات مجموعة البيانات المطبوعة.
تسمح واجهات برمجة تطبيقات مجموعة البيانات المطبعية لأحدها بتشغيل تحويلات مثل الخريطة والتصفية والتجميعات على مجموعات البيانات الناتجة. يتم تنفيذ هذه أيضا على غرار UDFs على نظام مجموعة Databricks.
يستخدم map() تطبيق Scala التالي واجهة برمجة التطبيقات لتعديل رقم في عمود نتيجة إلى سلسلة بادئة.
import com.databricks.connect.DatabricksSession
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions.{col, udf}
object Main {
def main(args: Array[String]): Unit = {
val sourceLocation = getClass.getProtectionDomain.getCodeSource.getLocation.toURI
val spark = DatabricksSession.builder()
.addCompiledArtifacts(sourceLocation)
.getOrCreate()
spark.range(3).map(f => s"row-$f").show()
}
}
بينما يستخدم map() هذا المثال واجهة برمجة التطبيقات، ينطبق هذا أيضا على واجهات برمجة تطبيقات filter()مجموعة البيانات الأخرى مثل ، mapPartitions()، وما إلى ذلك.