إدارة الحزم على نطاق الجلسة

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

عند استخدام المكتبات ذات نطاق الجلسة، من المهم أن تضع النقاط التالية في الاعتبار:

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

حزم Python محددة الجلسة

إدارة حزم Python ذات نطاق الجلسة من خلال ملف environment.yml

لتحديد حزم Python المخصصة للجلسة:

  1. انتقل إلى تجمع Spark المحدد وتأكد من تمكين المكتبات على مستوى الجلسة. يمكنك تمكين هذا الإعداد بالانتقال إلى علامة تبويب Manage>Apache Spark pool>Packages.  لقطة شاشة لتمكين حزم الجلسة.
  2. بمجرد تطبيق الإعداد، يمكنك فتح دفتر ملاحظات وتحديد تكوينحزمالجلسة>. لقطة شاشة لتحديد حزم الجلسة. لقطة شاشة لتحميل ملف Yml.
  3. هنا، يمكنك تحميل ملف Conda environment.yml لتثبيت الحزم أو ترقيتها داخل جلسة عمل. المكتبات المحددة موجودة بمجرد بدء الجلسة. لن تكون هذه المكتبات متوفرة بعد انتهاء جلسة العمل.

إدارة حزم Python ذات نطاق الجلسة من خلال أوامر ٪pip و٪conda

يمكنك استخدام أوامر ٪pip و ٪conda الشائعة لتثبيت مكتبات إضافية تابعة لجهة خارجية أو مكتباتك المخصصة أثناء جلسة دفتر ملاحظات Apache Spark. في هذا القسم، نستخدم أوامر ٪pip لتوضيح العديد من السيناريوهات الشائعة.

ملاحظة

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

تثبيت حزمة جهة خارجية

يمكنك بسهولة تثبيت مكتبة Python من PyPI.

# Install vega_datasets
%pip install altair vega_datasets

للتحقق من نتيجة التثبيت، يمكنك تشغيل التعليمات البرمجية التالية لتصور vega_datasets

# Create a scatter plot
# Plot Miles per gallon against the horsepower across different region

import altair as alt
from vega_datasets import data

cars = data.cars()
alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
).interactive()

تثبيت حزمة عجلة من حساب التخزين

لتثبيت المكتبة من التخزين، تحتاج إلى التحميل إلى حساب التخزين الخاص بك عن طريق تشغيل الأوامر التالية.

from notebookutils import mssparkutils  
 
mssparkutils.fs.mount(  
    "abfss://<<file system>>@<<storage account>.dfs.core.windows.net",  
    "/<<path to wheel file>>",  
    {"linkedService":"<<storage name>>"}  
) 

وبعد ذلك، يمكنك استخدام أمر تثبيت ٪pip لتثبيت حزمة العجلة المطلوبة

%pip install /<<path to wheel file>>/<<wheel package name>>.whl

تثبيت إصدار آخر من المكتبة المضمنة

يمكنك استخدام الأمر التالي لمعرفة ما هو الإصدار المضمن من حزمة معينة. نحن نستخدم الباندا كمثال

%pip show pandas

والنتيجة هي كالسجل التالي:

Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...

يمكنك استخدام الأمر التالي لتبديل pandas إلى إصدار آخر، لنفترض 1.2.4

%pip install pandas==1.2.4

إلغاء تثبيت مكتبة ذات نطاق جلسة عمل

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

%pip uninstall altair vega_datasets --yes

استخدام الأمر ٪pip لتثبيت المكتبات من ملف requirement.txt

%pip install -r  /<<path to requirement file>>/requirements.txt

حزم Java أو Scala محددة الجلسة

لتحديد حزم Java أو Scala المشمولة في الجلسة، يمكنك استخدام الخيار %%configure:

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
    }
}

ملاحظة

  • نوصيك بتشغيل %%configure في بداية دفتر الملاحظات. يمكنك الرجوع إلى هذا المستند للحصول على القائمة الكاملة للمعلمات الصالحة.

حزم R ذات نطاق الجلسة (معاينة)

تتضمن تجمعات Azure Synapse Analytics العديد من مكتبات R الشائعة الجاهزة. يمكنك أيضا تثبيت مكتبات إضافية تابعة لجهة خارجية أثناء جلسة دفتر ملاحظات Apache Spark.

ملاحظة

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

تثبيت الحزمة

يمكنك بسهولة تثبيت مكتبة R من CRAN.

# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

يمكنك أيضا استخدام لقطات CRAN كمستودع للتأكد من تنزيل نفس إصدار الحزمة في كل مرة.

install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

استخدام devtools لتثبيت الحزم

تعمل devtools المكتبة على تبسيط تطوير الحزم لتسريع المهام الشائعة. يتم تثبيت هذه المكتبة ضمن وقت تشغيل Azure Synapse Analytics الافتراضي.

يمكنك استخدام devtools لتحديد إصدار معين من مكتبة لتثبيتها. سيتم تثبيت هذه المكتبات عبر جميع العقد داخل نظام المجموعة.

# Install a specific version. 
install_version("caesar", version = "1.0.0") 

وبالمثل، يمكنك تثبيت مكتبة مباشرة من GitHub.

# Install a GitHub library. 

install_github("jtilly/matchingR") 

حاليا، يتم دعم الوظائف التالية devtools داخل Azure Synapse Analytics:

الأمر الوصف
install_github() تثبيت حزمة R من GitHub
install_gitlab() تثبيت حزمة R من GitLab
install_bitbucket() تثبيت حزمة R من BitBucket
install_url() تثبيت حزمة R من عنوان URL عشوائي
install_git() التثبيتات من مستودع git عشوائي
install_local() عمليات التثبيت من ملف محلي على القرص
install_version() عمليات التثبيت من إصدار معين على CRAN

عرض المكتبات المثبتة

يمكنك الاستعلام عن جميع المكتبات المثبتة داخل جلسة العمل باستخدام library الأمر .

library()

يمكنك استخدام الدالة packageVersion للتحقق من إصدار المكتبة:

packageVersion("caesar")

إزالة حزمة R من جلسة عمل

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

# detach a library

detach("package: caesar")

لإزالة حزمة ذات نطاق جلسة عمل من دفتر ملاحظات، استخدم remove.packages() الأمر . لا يؤثر تغيير المكتبة هذا على جلسات العمل الأخرى على نفس المجموعة. لا يمكن للمستخدمين إلغاء تثبيت المكتبات المضمنة أو إزالتها من وقت تشغيل Azure Synapse Analytics الافتراضي.

remove.packages("caesar")

ملاحظة

لا يمكنك إزالة الحزم الأساسية مثل SparkR أو SparklyR أو R.

مكتبات R ذات نطاق الجلسة وSparkR

تتوفر المكتبات ذات نطاق دفتر الملاحظات على عمال SparkR.

install.packages("stringr")
library(SparkR)

str_length_function <- function(x) {
  library(stringr)
  str_length(x)
}

docs <- c("Wow, I really like the new light sabers!",
               "That book was excellent.",
               "R is a fantastic language.",
               "The service in this restaurant was miserable.",
               "This is neither positive or negative.")

spark.lapply(docs, str_length_function)

مكتبات R ذات نطاق الجلسة وSparklyR

باستخدام spark_apply() في SparklyR، يمكنك استخدام أي حزمة R داخل Spark. بشكل افتراضي، في sparklyr::spark_apply()، يتم تعيين وسيطة الحزم إلى FALSE. هذا ينسخ المكتبات الموجودة في libPaths الحالية إلى العمال، مما يسمح لك باستيرادها واستخدامها على العمال. على سبيل المثال، يمكنك تشغيل ما يلي لإنشاء رسالة مشفرة بواسطة قيصر باستخدام sparklyr::spark_apply():

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

spark_version <- "3.2"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)

apply_cases <- function(x) {
  library(caesar)
  caesar("hello world")
}
sdf_len(sc, 5) %>%
  spark_apply(apply_cases, packages=FALSE)

الخطوات التالية