أدوات معالجة البيانات

Databricks المرافق ( dbutils ) تجعل من السهل على أداء مجموعات قوية من المهام. يمكنك استخدام الأدوات المساعدة للعمل مع تخزين الكائنات بكفاءة، لسلسلة و وضع معلمات دفاتر الملاحظات، والعمل مع الأسرار. dbutils غير معتمدة خارج دفاتر الملاحظات.

هام

dbutilsاستدعاء داخل المنفذين يمكن أن تنتج نتائج غير متوقعة. لمعرفة المزيد حول القيود dbutils والبدائل التي يمكن استخدامها بدلا من ذلك، راجع dbutils.

dbutils تتوفر الأدوات المساعدة في دفاتر الملاحظات Python و R و Scala.

كيفيةالقيام بما يلي : قائمة الأدوات المساعدة، قائمة الأوامر، عرض تعليمات الأمر

المرافق: البيانات، FS، المكتبة، دفتر الملاحظات، الأسرار، الحاجيات، مكتبة API المرافق

قائمة المرافق المتاحة

لسرد المرافق المتاحة مع وصف قصير لكل أداة مساعدة، قم بتشغيل dbutils.help() Python أو Scala.

يسرد هذا المثال الأوامر المتوفرة ل "أدوات المساعدة Databricks".

Python

dbutils.help()

Scala

dbutils.help()
This module provides various utilities for users to interact with the rest of Databricks.

fs: DbfsUtils -> Manipulates the Databricks filesystem (DBFS) from the console
library: LibraryUtils -> Utilities for session isolated libraries
notebook: NotebookUtils -> Utilities for the control flow of a notebook (EXPERIMENTAL)
secrets: SecretUtils -> Provides utilities for leveraging secrets within notebooks
widgets: WidgetsUtils -> Methods to create and get bound value of input widgets inside notebooks

سرد الأوامر المتوفرة لفائدة

لسرد الأوامر المتوفرة لمرفق مع وصف قصير لكل أمر، قم بتشغيل .help() بعد الاسم البرمجي للمرفق.

يسرد هذا المثال الأوامر المتوفرة الأداة المساعدة نظام ملفات Databricks (DBFS).

Python

dbutils.fs.help()

R

dbutils.fs.help()

Scala

dbutils.fs.help()
dbutils.fs provides utilities for working with FileSystems. Most methods in this package can take either a DBFS path (e.g., "/foo" or "dbfs:/foo"), or another FileSystem URI. For more info about a method, use dbutils.fs.help("methodName"). In notebooks, you can also use the %fs shorthand to access DBFS. The %fs shorthand maps straightforwardly onto dbutils calls. For example, "%fs head --maxBytes=10000 /file/path" translates into "dbutils.fs.head("/file/path", maxBytes = 10000)".

fsutils

cp(from: String, to: String, recurse: boolean = false): boolean -> Copies a file or directory, possibly across FileSystems
head(file: String, maxBytes: int = 65536): String -> Returns up to the first 'maxBytes' bytes of the given file as a String encoded in UTF-8
ls(dir: String): Seq -> Lists the contents of a directory
mkdirs(dir: String): boolean -> Creates the given directory if it does not exist, also creating any necessary parent directories
mv(from: String, to: String, recurse: boolean = false): boolean -> Moves a file or directory, possibly across FileSystems
put(file: String, contents: String, overwrite: boolean = false): boolean -> Writes the given String out to a file, encoded in UTF-8
rm(dir: String, recurse: boolean = false): boolean -> Removes a file or directory

mount

mount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Mounts the given source directory into DBFS at the given mount point
mounts: Seq -> Displays information about what is mounted within DBFS
refreshMounts: boolean -> Forces all machines in this cluster to refresh their mount cache, ensuring they receive the most recent information
unmount(mountPoint: String): boolean -> Deletes a DBFS mount point

عرض تعليمات لأمر

لعرض تعليمات لأمر، قم بتشغيل .help("<command-name>") بعد اسم الأمر.

يعرض هذا المثال تعليمات الأمر نسخ DBFS.

Python

dbutils.fs.help("cp")

R

dbutils.fs.help("cp")

Scala

dbutils.fs.help("cp")
/**
* Copies a file or directory, possibly across FileSystems.
*
* Example: cp("/mnt/my-folder/a", "dbfs://a/b")
*
* @param from FileSystem URI of the source file or directory
* @param to FileSystem URI of the destination file or directory
* @param recurse if true, all files and directories will be recursively copied
* @return true if all files were successfully copied
*/
cp(from: java.lang.String, to: java.lang.String, recurse: boolean = false): boolean

أداة البيانات (dbutils.data)

هام

هذه الميزة في المعاينة العامة.

ملاحظة

متوفر في Databricks وقت التشغيل 9.0 وما فوق.

الأوامر: تلخيص

تتيح لك أداة البيانات فهم مجموعات البيانات وتفسيرها. لسرد الأوامر المتوفرة، قم بتشغيل dbutils.data.help() .

dbutils.data provides utilities for understanding and interpreting datasets. This module is currently in preview and may be unstable. For more info about a method, use dbutils.data.help("methodName").

summarize(df: Object, precise: boolean): void -> Summarize a Spark DataFrame and visualize the statistics to get quick insights

تلخيص الأمر (dbutils.data.summarize)

حساب وعرض إحصائيات موجزة ل Apache Spark DataFrame أو باندا داتا ثيرافيرم. يتوفر هذا الأمر ل Python و Scala و R.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.data.help("summarize") .

في Databricks Runtime 10.1 وما فوق، يمكنك استخدام المعلمة الإضافية precise لضبط دقة الإحصائيات المحسوبة.

ملاحظة

هذه الميزة في المعاينة العامة.

  • عندما precise يتم تعيين إلى false (الافتراضي) ، تتضمن بعض الإحصائيات التي تم إرجاعها تقريب لتقليل وقت التشغيل.
    • قد يكون عدد القيم المميزة للأعمدة القاطعة خطأ نسبي بنسبة 5٪ تقريبا للأعمدة ذات العلاقة الأساسية العالية.
    • قد يكون عدد القيم المتكررة خطأ يصل إلى 0.01٪ عندما يكون عدد القيم المميزة أكبر من 10000.
    • قد يكون لدى التقديرات التكرارية والمئين خطأ يصل إلى 0.01٪ بالنسبة إلى العدد الإجمالي للصفوف.
  • عند precise تعيين إلى true، يتم حساب الإحصائيات بدقة أعلى. جميع الإحصائيات باستثناء المدرجات التكرارية والمئينات للأعمدة الرقمية هي الآن دقيقة.
    • قد يكون لدى تقديرات الرسم البياني والمئين خطأ يصل إلى 0.0001٪ بالنسبة إلى العدد الإجمالي للصفوف.

تلميح الأداة في أعلى إخراج ملخص البيانات يشير إلى وضع التشغيل الحالي.

يعرض هذا المثال إحصائيات موجزة ل Apache Spark DataFrame مع تقريب ممكن بشكل افتراضي. لمشاهدة النتائج، قم بتشغيل هذا الأمر في دفتر ملاحظات. يستند هذا المثال إلى مجموعات بيانات Azure Databricks.

Python

df = spark.read.format('csv').load(
  '/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv',
  header=True,
  inferSchema=True
)
dbutils.data.summarize(df)

R

df <- read.df("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", source = "csv", header="true", inferSchema = "true")
dbutils.data.summarize(df)

Scala

val df = spark.read.format("csv")
  .option("inferSchema", "true")
  .option("header", "true")
  .load("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv")
dbutils.data.summarize(df)

أداة نظام الملفات (dbutils.fs)

الأوامر: CP، الرأس، ls، mkdirs، جبل، يتصاعد، MV، وضع، refreshMounts، rm، إلغاء تحميل

الأداة المساعدة نظام الملفات يسمح لك بالوصول Databricks ملف النظام (DBFS)، مما يجعل من الأسهل استخدام Azure Databricks كنظام ملفات. لسرد الأوامر المتوفرة، قم بتشغيل dbutils.fs.help() .

dbutils.fs provides utilities for working with FileSystems. Most methods in this package can take either a DBFS path (e.g., "/foo" or "dbfs:/foo"), or another FileSystem URI. For more info about a method, use dbutils.fs.help("methodName"). In notebooks, you can also use the %fs shorthand to access DBFS. The %fs shorthand maps straightforwardly onto dbutils calls. For example, "%fs head --maxBytes=10000 /file/path" translates into "dbutils.fs.head("/file/path", maxBytes = 10000)".

fsutils

cp(from: String, to: String, recurse: boolean = false): boolean -> Copies a file or directory, possibly across FileSystems
head(file: String, maxBytes: int = 65536): String -> Returns up to the first 'maxBytes' bytes of the given file as a String encoded in UTF-8
ls(dir: String): Seq -> Lists the contents of a directory
mkdirs(dir: String): boolean -> Creates the given directory if it does not exist, also creating any necessary parent directories
mv(from: String, to: String, recurse: boolean = false): boolean -> Moves a file or directory, possibly across FileSystems
put(file: String, contents: String, overwrite: boolean = false): boolean -> Writes the given String out to a file, encoded in UTF-8
rm(dir: String, recurse: boolean = false): boolean -> Removes a file or directory

mount

mount(source: String, mountPoint: String, encryptionType: String = "", owner: String = null, extraConfigs: Map = Map.empty[String, String]): boolean -> Mounts the given source directory into DBFS at the given mount point
mounts: Seq -> Displays information about what is mounted within DBFS
refreshMounts: boolean -> Forces all machines in this cluster to refresh their mount cache, ensuring they receive the most recent information
unmount(mountPoint: String): boolean -> Deletes a DBFS mount point

cp الأمر (dbutils.fs.cp)

نسخ ملف أو دليل، ربما عبر أنظمة الملفات.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("cp") .

هذا المثال بنسخ الملف المسمى old_file.txt من /FileStore إلى ، /tmp/new إعادة تسمية الملف المنسوخ إلى new_file.txt .

Python

dbutils.fs.cp("/FileStore/old_file.txt", "/tmp/new/new_file.txt")

# Out[4]: True

R

dbutils.fs.cp("/FileStore/old_file.txt", "/tmp/new/new_file.txt")

# [1] TRUE

Scala

dbutils.fs.cp("/FileStore/old_file.txt", "/tmp/new/new_file.txt")

// res3: Boolean = true

قيادة الرأس (dbutils.fs.head)

إرجاع حتى الحد الأقصى المحدد لعدد بايت الملف المعطى. يتم إرجاع وحدات البايت كسلسلة UTF-8 المشفرة.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("head") .

يعرض هذا المثال أول 25 بايت من الملف my_file.txt الموجود في /tmp .

Python

dbutils.fs.head("/tmp/my_file.txt", 25)

# [Truncated to first 25 bytes]
# Out[12]: 'Apache Spark is awesome!\n'

R

dbutils.fs.head("/tmp/my_file.txt", 25)

# [1] "Apache Spark is awesome!\n"

Scala

dbutils.fs.head("/tmp/my_file.txt", 25)

// [Truncated to first 25 bytes]
// res4: String =
// "Apache Spark is awesome!
// "

ls الأمر (dbutils.fs.ls)

سرد محتويات دليل.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("ls") .

يعرض هذا المثال معلومات حول محتويات /tmp .

Python

dbutils.fs.ls("/tmp")

# Out[13]: [FileInfo(path='dbfs:/tmp/my_file.txt', name='my_file.txt', size=40)]

R

dbutils.fs.ls("/tmp")

# For prettier results from dbutils.fs.ls(<dir>), please use `%fs ls <dir>`

# [[1]]
# [[1]]$path
# [1] "dbfs:/tmp/my_file.txt"

# [[1]]$name
# [1] "my_file.txt"

# [[1]]$size
# [1] 40

# [[1]]$isDir
# [1] FALSE

# [[1]]$isFile
# [1] TRUE

Scala

dbutils.fs.ls("/tmp")

// res6: Seq[com.databricks.backend.daemon.dbutils.FileInfo] = WrappedArray(FileInfo(dbfs:/tmp/my_file.txt, my_file.txt, 40))

الأمر mkdirs (dbutils.fs.mkdirs)

إنشاء الدليل المعطى إذا لم يكن موجودا. كما ينشئ أية دلائل الأصل الضرورية.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("mkdirs") .

ينشئ هذا المثال بنية الدليل /parent/child/grandchild داخل /tmp .

Python

dbutils.fs.mkdirs("/tmp/parent/child/grandchild")

# Out[15]: True

R

dbutils.fs.mkdirs("/tmp/parent/child/grandchild")

# [1] TRUE

Scala

dbutils.fs.mkdirs("/tmp/parent/child/grandchild")

// res7: Boolean = true

الأمر تحميل (dbutils.fs.mount)

تحميل الدليل المصدر المحدد إلى DBFS عند نقطة التحميل المحددة.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("mount") .

Python

dbutils.fs.mount(
  source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
  mount_point = "/mnt/<mount-name>",
  extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})

Scala

dbutils.fs.mount(
  source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>",
  mountPoint = "/mnt/<mount-name>",
  extraConfigs = Map("<conf-key>" -> dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")))

للحصول على أمثلة إضافية للتعليمات البرمجية، راجع تخزين Azure Blob.

يتصاعد الأمر (dbutils.fs.mounts)

عرض معلومات حول ما يتم تحميله حاليا داخل DBFS.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("mounts") .

Python

dbutils.fs.mounts()

Scala

dbutils.fs.mounts()

للحصول على أمثلة إضافية للتعليمات البرمجية، راجع تخزين Azure Blob.

أمر mv (dbutils.fs.mv)

نقل ملف أو دليل، ربما عبر أنظمة الملفات. النقل هو نسخة متبوعة بحذف، حتى بالنسبة للتحركات داخل أنظمة الملفات.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("mv") .

ينقل هذا المثال الملف my_file.txt من /FileStore إلى /tmp/parent/child/granchild .

Python

dbutils.fs.mv("/FileStore/my_file.txt", "/tmp/parent/child/grandchild")

# Out[2]: True

R

dbutils.fs.mv("/FileStore/my_file.txt", "/tmp/parent/child/grandchild")

# [1] TRUE

Scala

dbutils.fs.mv("/FileStore/my_file.txt", "/tmp/parent/child/grandchild")

// res1: Boolean = true

وضع الأمر (dbutils.fs.put)

كتابة السلسلة المحددة إلى ملف. السلسلة مشفرة UTF-8.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("put") .

يكتب هذا المثال السلسلة Hello, Databricks! إلى ملف مسمى في hello_db.txt/tmp . إذا كان الملف موجودا، سيتم الكتابة فوقه.

Python

dbutils.fs.put("/tmp/hello_db.txt", "Hello, Databricks!", True)

# Wrote 18 bytes.
# Out[6]: True

R

dbutils.fs.put("/tmp/hello_db.txt", "Hello, Databricks!", TRUE)

# [1] TRUE

Scala

dbutils.fs.put("/tmp/hello_db.txt", "Hello, Databricks!", true)

// Wrote 18 bytes.
// res2: Boolean = true

أمر refreshMounts (dbutils.fs.refreshMounts)

فرض كافة الأجهزة في الكتلة لتحديث ذاكرة التخزين المؤقت الخاصة بهم تحميل، التأكد من تلقي أحدث المعلومات.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("refreshMounts") .

Python

dbutils.fs.refreshMounts()

Scala

dbutils.fs.refreshMounts()

للحصول على أمثلة التعليمات البرمجية الإضافية، راجع تخزين Azure Blob.

الأمر rm (dbutils.fs.rm)

إزالة ملف أو دليل.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("rm") .

هذا المثال إزالة الملف المسمى hello_db.txt في /tmp .

Python

dbutils.fs.rm("/tmp/hello_db.txt")

# Out[8]: True

R

dbutils.fs.rm("/tmp/hello_db.txt")

# [1] TRUE

Scala

dbutils.fs.rm("/tmp/hello_db.txt")

// res6: Boolean = true

إلغاء تحميل الأمر (dbutils.fs.unmount)

حذف نقطة تحميل DBFS.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.fs.help("unmount") .

dbutils.fs.unmount("/mnt/<mount-name>")

للحصول على أمثلة إضافية للتعليمات البرمجية، راجع تخزين Azure Blob.

أداة مكتبة (dbutils.library)

ملاحظة

تم إهمال الأداة المساعدة للمكتبة.

الأوامر: تثبيت، installPyPI، قائمة، restartPython، updateCondaEnv

الأداة المساعدة مكتبة يسمح لك لتثبيت مكتبات بيثون وإنشاء بيئة نطاقها إلى جلسة عمل دفتر ملاحظات. المكتبات متوفرة على كل من برنامج التشغيل والمنفذين، بحيث يمكنك الرجوع إليها في وظائف المعرفة من قبل المستخدم. وهذا يمكن:

  • تبعيات المكتبة لدفتر ملاحظات يتم تنظيمها داخل دفتر الملاحظات نفسه.
  • مستخدمي دفتر الملاحظات مع تبعيات مكتبة مختلفة لمشاركة كتلة دون تدخل.

فصل دفتر ملاحظات يدمر هذه البيئة. ومع ذلك، يمكنك إعادة إنشائها عن طريق إعادة تشغيل install أوامر API المكتبة في دفتر الملاحظات. راجع restartPython واجهة برمجة التطبيقات لمعرفة كيفية إعادة تعيين حالة دفتر الملاحظات دون فقدان البيئة.

هام

لا تتوفر أدوات مكتبة المساعدة على Databricks وقت التشغيل ML أو Databricks وقت التشغيل لعلم الجينوم. بدلا من ذلك، راجع مكتبات Python ذات النطاق دفتر الملاحظات.

بالنسبة إلى Databricks Runtime 7.2 وما فوق، توصي Databricks باستخدام %pip الأوامر السحرية لتثبيت المكتبات ذات النطاق الدفتري. راجع مكتبات بيثون ذات النطاق دفتر الملاحظات.

يتم تمكين الأدوات المساعدة للمكتبة بشكل افتراضي. لذلك، بشكل افتراضي يتم عزل بيئة Python لكل دفتر ملاحظات باستخدام قابل للتنفيذ Python منفصلة التي يتم إنشاؤها عند إرفاق دفتر الملاحظات ويرث بيئة Python الافتراضي على الكتلة. المكتبات المثبتة من خلال برنامج نصي init في بيئة بيثون Azure Databricks لا تزال متوفرة. يمكنك تعطيل هذه الميزة عن طريق تعيين spark.databricks.libraryIsolation.enabled إلى false .

هذا API متوافق مع تثبيت المكتبة الموجودة على مستوى الكتلة من خلال واجهة المستخدموAPI REST. المكتبات المثبتة من خلال API هذه لها أولوية أعلى من المكتبات على مستوى الكتلة.

لسرد الأوامر المتوفرة، قم بتشغيل dbutils.library.help() .

install(path: String): boolean -> Install the library within the current notebook session
installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean -> Install the PyPI library within the current notebook session
list: List -> List the isolated libraries added for the current notebook session via dbutils
restartPython: void -> Restart python process for the current notebook session
updateCondaEnv(envYmlContent: String): boolean -> Update the current notebook's Conda environment based on the specification (content of environment

تثبيت الأمر (dbutils.library.install)

نظرا لمسار إلى مكتبة، يقوم بتثبيت تلك المكتبة ضمن جلسة عمل دفتر الملاحظات الحالية. تتوفر المكتبات المثبتة عن طريق استدعاء هذا الأمر فقط لدفتر الملاحظات الحالي.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.library.help("install") .

يقوم هذا المثال بتثبيت .egg أو .whl مكتبة داخل دفتر ملاحظات.

هام

توصي Databricks بوضع كافة أوامر تثبيت المكتبة في الخلية الأولى من دفتر الملاحظات الخاص بك واستدعاء restartPython في نهاية تلك الخلية. يتم إعادة تعيين حالة دفتر ملاحظات Python بعد التشغيل restartPython ؛ يفقد دفتر الملاحظات كل حالة بما في ذلك على سبيل المثال لا الحصر المتغيرات المحلية والمكتبات المستوردة وغيرها من الحالات المؤقتة. لذلك، نوصي بتثبيت المكتبات وإعادة تعيين حالة دفتر الملاحظات في الخلية دفتر الملاحظات الأول.

مصادر المكتبة المقبولة هي dbfs و و و و abfssadlwasbs .

dbutils.library.install("abfss:/path/to/your/library.egg")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.install("abfss:/path/to/your/library.whl")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

ملاحظة

يمكنك تثبيت ملفات العجلات المخصصة مباشرة باستخدام %pip . في المثال التالي نفترض أنك قمت بتحميل ملف عجلة المكتبة إلى DBFS:

%pip install /dbfs/path/to/your/library.whl

لا يتم دعم ملفات البيض من قبل نقطة، ويعتبر عجلة معيار لبناء والتعبئة والتغليف ثنائي لبيثون. انظر عجلة مقابل البيض لمزيد من التفاصيل. ومع ذلك، إذا كنت تريد استخدام ملف بيضة بطريقة متوافقة مع %pip ، يمكنك استخدام الحل البديل التالي:

# This step is only needed if no %pip commands have been run yet.
# It will trigger setting up the isolated notebook environment
%pip install <any-lib>  # This doesn't need to be a real library; for example "%pip install any-lib" would work
import sys
# Assuming the preceding step was completed, the following command
# adds the egg file to the current notebook environment
sys.path.append("/local/path/to/library.egg")

تثبيتأمرPIPI (dbutils.library.installPyPI)

نظرا لحزمة فهرس حزمة بيثون (PyPI) تثبيت تلك الحزمة ضمن جلسة عمل دفتر الملاحظات الحالي. يتم عزل المكتبات المثبتة عن طريق استدعاء هذا الأمر بين دفاتر الملاحظات.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.library.help("installPyPI") .

هذا المثال بتثبيت حزمة PyPI في دفتر ملاحظات. versionrepo، و extras اختيارية. استخدم extras الوسيطة لتحديد extras (متطلبات إضافية).

dbutils.library.installPyPI("pypipackage", version="version", repo="repo", extras="extras")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

هام

versionلا يمكن أن تكون المفاتيح و جزءا من سلسلة extras حزمة PyPI. على سبيل المثال: dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0") غير صالح. استخدم version الوسيطتين و extras لتحديد معلومات الإصدار والإضافات كما يلي:

dbutils.library.installPyPI("azureml-sdk", version="1.19.0", extras="databricks")
dbutils.library.restartPython()  # Removes Python state, but some libraries might not work without calling this command.

ملاحظة

عند استبدال dbutils.library.installPyPI الأوامر %pip بالأوامر، يتم إعادة تشغيل مترجم Python تلقائيا. يمكنك تشغيل الأمر تثبيت كما يلي:

%pip install azureml-sdk[databricks]==1.19.0

يحدد هذا المثال متطلبات المكتبة في دفتر ملاحظات واحد ثم يقوم بتثبيتها باستخدام %run في الآخر. للقيام بذلك، قم أولا بتعريف المكتبات لتثبيتها في دفتر ملاحظات. يستخدم هذا المثال دفتر ملاحظات باسم InstallDependencies .

dbutils.library.installPyPI("torch")
dbutils.library.installPyPI("scikit-learn", version="1.19.1")
dbutils.library.installPyPI("azureml-sdk", extras="databricks")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

ثم قم بتثبيتها في دفتر الملاحظات الذي يحتاج إلى تلك التبعيات.

%run /path/to/InstallDependencies # Install the dependencies in the first cell.
import torch
from sklearn.linear_model import LinearRegression
import azureml
...

يعيد هذا المثال تعيين حالة دفتر ملاحظات Python أثناء الحفاظ على البيئة. تتوفر هذه التقنية فقط في دفاتر الملاحظات Python. على سبيل المثال، يمكنك استخدام هذه التقنية لإعادة تحميل المكتبات Azure Databricks المثبتة مسبقا مع إصدار مختلف:

dbutils.library.installPyPI("numpy", version="1.15.4")
dbutils.library.restartPython()
# Make sure you start using the library in another cell.
import numpy

يمكنك أيضا استخدام هذه التقنية لتثبيت مكتبات مثل tensorflow التي تحتاج إلى تحميلها عند بدء تشغيل العملية:

dbutils.library.installPyPI("tensorflow")
dbutils.library.restartPython()
# Use the library in another cell.
import tensorflow

أمر القائمة (dbutils.library.list)

سرد المكتبات المعزولة المضافة لجلسة عمل دفتر الملاحظات الحالية من خلال الأداة المساعدة للمكتبة. لا يتضمن هذا المكتبات المرفقة إلى الكتلة.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.library.help("list") .

يسرد هذا المثال المكتبات المثبتة في دفتر ملاحظات.

dbutils.library.list()

ملاحظة

ما يعادل هذا الأمر باستخدام %pip هو:

%pip freeze

الأمر restartPython (dbutils.library.restartPython)

إعادة تشغيل عملية Python لجلسة عمل دفتر الملاحظات الحالي.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.library.help("restartPython") .

هذا المثال إعادة تشغيل عملية Python لجلسة عمل دفتر الملاحظات الحالي.

dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

تحديثأمرCondaEnv (dbutils.library.updateCondaEnv)

تحديث بيئة Conda الحالية في دفتر الملاحظات استنادا إلى محتويات environment.yml . يتم اعتماد هذا الأسلوب فقط Databricks وقت التشغيل على Conda.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.library.help("updateCondaEnv") .

يقوم هذا المثال بتحديث بيئة Conda دفتر الملاحظات الحالي استنادا إلى محتويات المواصفات المتوفرة.

dbutils.library.updateCondaEnv(
"""
channels:
  - anaconda
dependencies:
  - gensim=3.4
  - nltk=3.4
""")

أداة دفتر الملاحظات (dbutils.notebook)

الأوامر: إنهاء، تشغيل

تتيح لك أداة الكمبيوتر المحمول ربط دفاتر الملاحظات معا والعمل على أساس نتائجها. راجع مهام سير عمل دفتر الملاحظات.

لسرد الأوامر المتوفرة، قم بتشغيل dbutils.notebook.help() .

exit(value: String): void -> This method lets you exit a notebook with a value
run(path: String, timeoutSeconds: int, arguments: Map): String -> This method runs a notebook and returns its exit value.

إنهاء الأمر (dbutils.notebook.exit)

إنهاء دفتر ملاحظات بقيمة.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.notebook.help("exit") .

هذا المثال إنهاء دفتر الملاحظات مع القيمة Exiting from My Other Notebook .

Python

dbutils.notebook.exit("Exiting from My Other Notebook")

# Notebook exited: Exiting from My Other Notebook

R

dbutils.notebook.exit("Exiting from My Other Notebook")

# Notebook exited: Exiting from My Other Notebook

Scala

dbutils.notebook.exit("Exiting from My Other Notebook")

// Notebook exited: Exiting from My Other Notebook

تشغيل الأمر (dbutils.notebook.run)

تشغيل دفتر ملاحظات وإرجاع قيمة الإنهاء الخاصة به. سيتم تشغيل دفتر الملاحظات في الكتلة الحالية بشكل افتراضي.

ملاحظة

الحد الأقصى لطول قيمة السلسلة التي تم إرجاعها من run الأمر هو 5 ميغابايت. راجع الحصول على الإخراج لتشغيل واحد ( ).

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.notebook.help("run") .

يقوم هذا المثال بتشغيل دفتر ملاحظات مسما My Other Notebook في نفس موقع دفتر الملاحظات الذي يتصل به. ينتهي دفتر الملاحظات المسمى ببند التعليمات البرمجية dbutils.notebook.exit("Exiting from My Other Notebook") . إذا لم يتم إنهاء تشغيل دفتر الملاحظات استدعاء خلال 60 ثانية، يتم طرح استثناء.

Python

dbutils.notebook.run("My Other Notebook", 60)

# Out[14]: 'Exiting from My Other Notebook'

Scala

dbutils.notebook.run("My Other Notebook", 60)

// res2: String = Exiting from My Other Notebook

أسرار فائدة (dbutils.secrets)

الأوامر: الحصول على، getBytes، قائمة، listScopes

تتيح لك أداة الأسرار تخزين معلومات بيانات الاعتماد الحساسة والوصول إليها دون جعلها مرئية في دفاتر الملاحظات. راجع الإدارة السرية واستخدم الأسرار في دفتر ملاحظات. لسرد الأوامر المتوفرة، قم بتشغيل dbutils.secrets.help() .

get(scope: String, key: String): String -> Gets the string representation of a secret value with scope and key
getBytes(scope: String, key: String): byte[] -> Gets the bytes representation of a secret value with scope and key
list(scope: String): Seq -> Lists secret metadata for secrets within a scope
listScopes: Seq -> Lists secret scopes

الحصول على الأمر (dbutils.secrets.get)

يحصل على تمثيل سلسلة قيمة سرية لنطاق الأسرار المحددة والمفتاح.

تحذير

يمكن للمسؤولين والمبدعين السريين والمستخدمين الذين تم منحهم الإذن قراءة أسرار Azure Databricks. في حين أن Azure Databricks تبذل جهدا لتنقيح القيم السرية التي قد يتم عرضها في دفاتر الملاحظات ، إلا أنه من غير الممكن منع هؤلاء المستخدمين من قراءة الأسرار. لمزيد من المعلومات، راجع التنقيح السري.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.secrets.help("get") .

يحصل هذا المثال على تمثيل السلسلة للقيمة السرية للنطاق المسمى my-scope والمفتاح المسمى my-key .

Python

dbutils.secrets.get(scope="my-scope", key="my-key")

# Out[14]: '[REDACTED]'

R

dbutils.secrets.get(scope="my-scope", key="my-key")

# [1] "[REDACTED]"

Scala

dbutils.secrets.get(scope="my-scope", key="my-key")

// res0: String = [REDACTED]

getBytes الأمر (dbutils.secrets.getBytes)

يحصل على تمثيل البايت لقيمة سرية للنطاق المحدد والمفتاح المحدد.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.secrets.help("getBytes") .

يحصل هذا المثال على قيمة سرية ( a1!b2@c3# ) للنطاق المسمى my-scope والمفتاح المسمى my-key .

Python

my_secret = dbutils.secrets.getBytes(scope="my-scope", key="my-key")
my_secret.decode("utf-8")

# Out[1]: 'a1!b2@c3#'

R

my_secret = dbutils.secrets.getBytes(scope="my-scope", key="my-key")
print(rawToChar(my_secret))

# [1] "a1!b2@c3#"

Scala

val mySecret = dbutils.secrets.getBytes(scope="my-scope", key="my-key")
val convertedString = new String(mySecret)
println(convertedString)

// a1!b2@c3#
// mySecret: Array[Byte] = Array(97, 49, 33, 98, 50, 64, 99, 51, 35)
// convertedString: String = a1!b2@c3#

قائمة الأمر (dbutils.secrets.list)

سرد بيانات التعريف للأسرار داخل النطاق المحدد.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.secrets.help("list") .

يسرد هذا المثال بيانات التعريف للأسرار داخل النطاق المسمى my-scope .

Python

dbutils.secrets.list("my-scope")

# Out[10]: [SecretMetadata(key='my-key')]

R

dbutils.secrets.list("my-scope")

# [[1]]
# [[1]]$key
# [1] "my-key"

Scala

dbutils.secrets.list("my-scope")

// res2: Seq[com.databricks.dbutils_v1.SecretMetadata] = ArrayBuffer(SecretMetadata(my-key))

الأمر listScopes (dbutils.secrets.listScopes)

سرد النطاقات المتوفرة.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.secrets.help("listScopes") .

يسرد هذا المثال النطاقات المتوفرة.

Python

dbutils.secrets.listScopes()

# Out[14]: [SecretScope(name='my-scope')]

R

dbutils.secrets.listScopes()

# [[1]]
# [[1]]$name
# [1] "my-scope"

Scala

dbutils.secrets.listScopes()

// res3: Seq[com.databricks.dbutils_v1.SecretScope] = ArrayBuffer(SecretScope(my-scope))

الأداة المساعدة (dbutils.widgets)

الأوامر: combobox، المنسدلة، الحصول على، getArgument، multiselect، إزالة، removeAll، النص

الأداة المساعدة الحاجيات يسمح لك المعلمات دفاتر الملاحظات. انظر الحاجيات.

لسرد الأوامر المتوفرة، قم بتشغيل dbutils.widgets.help() .

combobox(name: String, defaultValue: String, choices: Seq, label: String): void -> Creates a combobox input widget with a given name, default value and choices
dropdown(name: String, defaultValue: String, choices: Seq, label: String): void -> Creates a dropdown input widget a with given name, default value and choices
get(name: String): String -> Retrieves current value of an input widget
getArgument(name: String, optional: String): String -> (DEPRECATED) Equivalent to get
multiselect(name: String, defaultValue: String, choices: Seq, label: String): void -> Creates a multiselect input widget with a given name, default value and choices
remove(name: String): void -> Removes an input widget from the notebook
removeAll: void -> Removes all widgets in the notebook
text(name: String, defaultValue: String, label: String): void -> Creates a text input widget with a given name and default value

combobox الأمر (dbutils.widgets.combobox)

إنشاء عنصر واجهة مستخدم مربع تحرير وسرد مع الاسم البرمجي المحدد والقيمة الافتراضية والخيارات والتسمية الاختيارية وعرضها.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("combobox") .

ينشئ هذا المثال ويعرض عنصر واجهة مستخدم مربع تحرير وسرد بالاسم البرمجي fruits_combobox . وهو يقدم الخيارات apple و يتم تعيينه إلى bananacoconutdragon fruit القيمة الأولية ل banana . هذه القطعة combobox له تسمية المصاحبة Fruits . ينتهي هذا المثال عن طريق طباعة القيمة الأولية لعنصر واجهة المجموعة، banana .

Python

dbutils.widgets.combobox(
  name='fruits_combobox',
  defaultValue='banana',
  choices=['apple', 'banana', 'coconut', 'dragon fruit'],
  label='Fruits'
)

print(dbutils.widgets.get("fruits_combobox"))

# banana

R

dbutils.widgets.combobox(
  name='fruits_combobox',
  defaultValue='banana',
  choices=list('apple', 'banana', 'coconut', 'dragon fruit'),
  label='Fruits'
)

print(dbutils.widgets.get("fruits_combobox"))

# [1] "banana"

Scala

dbutils.widgets.combobox(
  "fruits_combobox",
  "banana",
  Array("apple", "banana", "coconut", "dragon fruit"),
  "Fruits"
)

print(dbutils.widgets.get("fruits_combobox"))

// banana

الأمر المنسدل (dbutils.widgets.dropdown)

إنشاء عنصر واجهة مستخدم منسدلة وعرضه بالاسم البرمجي المحدد والقيمة الافتراضية والخيارات والتسمية الاختيارية.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("dropdown") .

ينشئ هذا المثال ويعرض عنصر واجهة مستخدم منسدلة بالاسم البرمجي toys_dropdown . وهو يقدم الخيارات alphabet blocks و يتم تعيينه إلى basketballcapedoll القيمة الأولية ل basketball . تحتوي أداة القائمة المنسدلة هذه على تسمية مصاحبة Toys . ينتهي هذا المثال بطباعة القيمة الأولية للعنصر المصغر المنسدل، basketball .

Python

dbutils.widgets.dropdown(
  name='toys_dropdown',
  defaultValue='basketball',
  choices=['alphabet blocks', 'basketball', 'cape', 'doll'],
  label='Toys'
)

print(dbutils.widgets.get("toys_dropdown"))

# basketball

R

dbutils.widgets.dropdown(
  name='toys_dropdown',
  defaultValue='basketball',
  choices=list('alphabet blocks', 'basketball', 'cape', 'doll'),
  label='Toys'
)

print(dbutils.widgets.get("toys_dropdown"))

# [1] "basketball"

Scala

dbutils.widgets.dropdown(
  "toys_dropdown",
  "basketball",
  Array("alphabet blocks", "basketball", "cape", "doll"),
  "Toys"
)

print(dbutils.widgets.get("toys_dropdown"))

// basketball

الحصول على الأمر (dbutils.widgets.get)

يحصل على القيمة الحالية للعنصر واجهة المستخدم مع اسم البرنامجية المحدد. يمكن أن يكون هذا الاسم البرمجي إما:

  • اسم عنصر واجهة مستخدم مخصص في دفتر الملاحظات، على سبيل المثال fruits_combobox أو toys_dropdown .
  • اسم معلمة مخصصة تم تمريرها إلى دفتر الملاحظات كجزء من مهمة دفتر ملاحظات، على سبيل المثال name أو age . لمزيد من المعلومات، راجع تغطية المعلمات لمهام دفتر الملاحظات في عملية إنشاء واجهة مستخدم مهمة أو الحقل في تشغيل وظيفة جديدة ( ) في واجهة برمجة تطبيقات الوظائف.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("get") .

يحصل هذا المثال على قيمة عنصر واجهة المستخدم الذي يحتوي على اسم برمجي fruits_combobox .

Python

dbutils.widgets.get('fruits_combobox')

# banana

R

dbutils.widgets.get('fruits_combobox')

# [1] "banana"

Scala

dbutils.widgets.get("fruits_combobox")

// res6: String = banana

يحصل هذا المثال على قيمة معلمة مهمة دفتر الملاحظات التي لها اسم برمجي age . تم تعيين هذه المعلمة إلى 35 عند تشغيل مهمة دفتر الملاحظات ذات الصلة.

Python

dbutils.widgets.get('age')

# 35

R

dbutils.widgets.get('age')

# [1] "35"

Scala

dbutils.widgets.get("age")

// res6: String = 35

الأمر getArgument (dbutils.widgets.getArgument)

يحصل على القيمة الحالية للعنصر واجهة المستخدم مع اسم البرنامجية المحدد. إذا لم تكن الأداة موجودة، يمكن إرجاع رسالة اختيارية.

ملاحظة

هذا الأمر مهمل. استخدام dbutils.widgets.get بدلا من ذلك.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("getArgument") .

يحصل هذا المثال على قيمة عنصر واجهة المستخدم الذي يحتوي على اسم برمجي fruits_combobox . إذا لم تكن هذه الأداة موجودة، Error: Cannot find fruits combobox يتم إرجاع الرسالة.

Python

dbutils.widgets.getArgument('fruits_combobox', 'Error: Cannot find fruits combobox')

# Deprecation warning: Use dbutils.widgets.text() or dbutils.widgets.dropdown() to create a widget and dbutils.widgets.get() to get its bound value.
# Out[3]: 'banana'

R

dbutils.widgets.getArgument('fruits_combobox', 'Error: Cannot find fruits combobox')

# Deprecation warning: Use dbutils.widgets.text() or dbutils.widgets.dropdown() to create a widget and dbutils.widgets.get() to get its bound value.
# [1] "banana"

Scala

dbutils.widgets.getArgument("fruits_combobox", "Error: Cannot find fruits combobox")

// command-1234567890123456:1: warning: method getArgument in trait WidgetsUtils is deprecated: Use dbutils.widgets.text() or dbutils.widgets.dropdown() to create a widget and dbutils.widgets.get() to get its bound value.
// dbutils.widgets.getArgument("fruits_combobox", "Error: Cannot find fruits combobox")
//                 ^
// res7: String = banana

الأمر multiselect (dbutils.widgets.multiselect)

إنشاء عنصر واجهة مستخدم متعدد التحديد يعرضه بالاسم البرمجي المحدد والقيمة الافتراضية والخيارات والتسمية الاختيارية.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("multiselect") .

ينشئ هذا المثال ويعرض عنصر واجهة مستخدم متعدد التحديد بالاسم البرمجي days_multiselect . وهو يقدم الخيارات Monday من خلال ويتم تعيين إلى Sunday القيمة الأولية من Tuesday . تحتوي أداة التحديد المتعدد هذه على تسمية مصاحبة Days of the Week . ينتهي هذا المثال بطباعة القيمة الأولية لعنصر واجهة المستخدم متعدد التحديد، Tuesday .

Python

dbutils.widgets.multiselect(
  name='days_multiselect',
  defaultValue='Tuesday',
  choices=['Monday', 'Tuesday', 'Wednesday', 'Thursday',
    'Friday', 'Saturday', 'Sunday'],
  label='Days of the Week'
)

print(dbutils.widgets.get("days_multiselect"))

# Tuesday

R

dbutils.widgets.multiselect(
  name='days_multiselect',
  defaultValue='Tuesday',
  choices=list('Monday', 'Tuesday', 'Wednesday', 'Thursday',
    'Friday', 'Saturday', 'Sunday'),
  label='Days of the Week'
)

print(dbutils.widgets.get("days_multiselect"))

# [1] "Tuesday"

Scala

dbutils.widgets.multiselect(
  "days_multiselect",
  "Tuesday",
  Array("Monday", "Tuesday", "Wednesday", "Thursday",
    "Friday", "Saturday", "Sunday"),
  "Days of the Week"
)

print(dbutils.widgets.get("days_multiselect"))

// Tuesday

إزالة الأمر (dbutils.widgets.remove)

إزالة عنصر واجهة المستخدم بالاسم البرمجي المحدد.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("remove") .

هام

إذا قمت بإضافة أمر لإزالة عنصر واجهة مستخدم، فلا يمكنك إضافة أمر لاحق لإنشاء عنصر واجهة مستخدم في نفس الخلية. يجب إنشاء عنصر واجهة المستخدم في خلية أخرى.

يزيل هذا المثال عنصر واجهة المستخدم مع اسم برمجي fruits_combobox .

Python

dbutils.widgets.remove('fruits_combobox')

R

dbutils.widgets.remove('fruits_combobox')

Scala

dbutils.widgets.remove("fruits_combobox")

إزالة كل الأمر (dbutils.widgets.removeAll)

إزالة كافة الحاجيات من دفتر الملاحظات.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("removeAll") .

هام

إذا قمت بإضافة أمر لإزالة كافة الحاجيات، لا يمكنك إضافة أمر لاحق لإنشاء أية أدوات في نفس الخلية. يجب إنشاء الحاجيات في خلية أخرى.

يزيل هذا المثال كافة عناصر واجهة المستخدم من دفتر الملاحظات.

Python

dbutils.widgets.removeAll()

R

dbutils.widgets.removeAll()

Scala

dbutils.widgets.removeAll()

الأمر النصي (dbutils.widgets.text)

إنشاء عنصر واجهة مستخدم نص مع الاسم البرمجي المحدد والقيمة الافتراضية والتسمية الاختيارية وعرضها.

لعرض تعليمات لهذا الأمر، قم بتشغيل dbutils.widgets.help("text") .

ينشئ هذا المثال ويعرض عنصر واجهة مستخدم نص بالاسم البرمجي your_name_text . يتم تعيين إلى القيمة الأولية ل Enter your name . تحتوي أداة النص هذه على تسمية مصاحبة Your name . ينتهي هذا المثال بطباعة القيمة الأولية لعنصر واجهة مستخدم النص، Enter your name .

Python

dbutils.widgets.text(
  name='your_name_text',
  defaultValue='Enter your name',
  label='Your name'
)

print(dbutils.widgets.get("your_name_text"))

# Enter your name

R

dbutils.widgets.text(
  name='your_name_text',
  defaultValue='Enter your name',
  label='Your name'
)

print(dbutils.widgets.get("your_name_text"))

# [1] "Enter your name"

Scala

dbutils.widgets.text(
  "your_name_text",
  "Enter your name",
  "Your name"
)

print(dbutils.widgets.get("your_name_text"))

// Enter your name

مكتبة API للمرافق العامة لالبيانات

لتسريع تطوير التطبيق، يمكن أن يكون مفيدا لتجميع وبناء واختبار التطبيقات قبل نشرها كمهمات إنتاج. لتمكينك من التحويل البرمجي مقابل أدوات Databricks المساعدة، يوفر Databricks dbutils-api المكتبة. يمكنك تنزيل dbutils-api المكتبة من صفحة ويب dbutils-api على موقع مافن Repository أو تضمين المكتبة عن طريق إضافة تبعية إلى ملف الإنشاء الخاص بك:

  • SBT

    libraryDependencies += "com.databricks" % "dbutils-api_TARGET" % "VERSION"
    
  • Maven

    <dependency>
        <groupId>com.databricks</groupId>
        <artifactId>dbutils-api_TARGET</artifactId>
        <version>VERSION</version>
    </dependency>
    
  • Gradle

    compile 'com.databricks:dbutils-api_TARGET:VERSION'
    

استبدال TARGET الهدف المطلوب (على سبيل 2.12 المثال) VERSION والإصدار المطلوب (على سبيل 0.0.5 المثال). للحصول على قائمة بالأهداف والإصدارات المتوفرة، راجع صفحة ويب واجهة برمجة التطبيقات DBUtils على موقع مستودع Maven.

بمجرد إنشاء التطبيق الخاص بك مقابل هذه المكتبة، يمكنك نشر التطبيق.

هام

dbutils-apiتسمح لك المكتبة بترجمة تطبيق يستخدم dbutils محليا، ولكن ليس لتشغيله. لتشغيل التطبيق، يجب نشرها في Azure Databricks.

التقييدات

dbutilsاستدعاء داخل المنفذين يمكن أن تنتج نتائج غير متوقعة أو يحتمل أن يؤدي إلى أخطاء.

إذا كنت بحاجة إلى تشغيل عمليات نظام الملفات على المنفذين باستخدام dbutils ، فهناك العديد من البدائل الأسرع والأكثر قابلية للتوسعة المتاحة:

للحصول على معلومات حول المنفذين، راجع نظرة عامة حول وضع الكتلة على موقع Apache Spark على الويب.