Bagikan melalui


Mengelola paket dengan cakupan sesi

Selain paket tingkat kumpulan, Anda juga dapat menentukan pustaka cakupan sesi di awal sesi buku catatan. Pustaka dengan cakupan sesi memungkinkan Anda menentukan dan menggunakan paket Python, jar, dan R dalam sesi notebook.

Saat menggunakan pustaka cakupan sesi, penting untuk mengingat poin-poin berikut:

  • Saat Anda memasang pustaka dengan cakupan sesi, hanya buku catatan saat ini yang memiliki akses ke pustaka yang ditentukan.
  • Pustaka ini tidak berdampak pada sesi atau pekerjaan lain menggunakan kumpulan Spark yang sama.
  • Pustaka ini diinstal di atas pustaka tingkat runtime bahasa umum dan kumpulan dasar, dan lebih diutamakan.
  • Pustaka dengan cakupan sesi tidak bertahan di seluruh sesi.

Paket Python dengan cakupan sesi

Mengelola paket Python dengan cakupan sesi melalui file environment.yml

Untuk menentukan paket Python dengan cakupan sesi:

  1. Navigasikan ke kumpulan Spark yang dipilih dan pastikan Anda telah mengaktifkan pustaka tingkat sesi. Anda dapat mengaktifkan setelan ini dengan membuka tab Kelola>Kumpulan Apache Spark>Paket. Cuplikan layar saat mengaktifkan paket sesi.
  2. Setelah pengaturan berlaku, Anda bisa membuka buku catatan dan memilih KonfigurasiPaketSesi>. Cuplikan layar saat menentukan paket sesi. Cuplikan layar saat mengunggah file Yml.
  3. Di sini, Anda dapat mengunggah file environment.yml Conda untuk menginstal atau meningkatkan paket dalam sesi. Pustaka yang ditentukan ada setelah sesi dimulai. Pustaka ini tidak akan lagi tersedia setelah sesi berakhir.

Mengelola paket Python lingkup sesi melalui perintah %pip dan %conda

Anda dapat menggunakan perintah %pip dan %conda populer untuk menginstal pustaka pihak ketiga tambahan atau pustaka kustom Anda selama sesi buku catatan Apache Spark Anda. Di bagian ini, kami menggunakan perintah %pip untuk menunjukkan beberapa skenario umum.

Catatan

  • Sebaiknya letakkan perintah %pip dan %conda di sel pertama buku catatan Anda jika Anda ingin menginstal pustaka baru. Penerjemah Python akan dimulai ulang setelah pustaka tingkat sesi dikelola untuk membuat perubahan efektif.
  • Perintah pengelolaan pustaka Python ini akan dinonaktifkan saat menjalankan pekerjaan alur. Jika Anda ingin menginstal paket dalam alur, Anda harus memanfaatkan kemampuan manajemen pustaka di tingkat kumpulan.
  • Pustaka Python dengan cakupan sesi secara otomatis diinstal di seluruh simpul driver dan pekerja.
  • Perintah %conda berikut ini tidak didukung: buat, bersihkan, bandingkan, aktifkan, nonaktifkan, jalankan, paket.
  • Anda dapat merujuk ke perintah %pip dan perintah %conda untuk daftar lengkap perintah.

Menginstal paket pihak ketiga

Anda dapat dengan mudah menginstal pustaka Python dari PyPI.

# Install vega_datasets
%pip install altair vega_datasets

Untuk memverifikasi hasil penginstalan, Anda bisa menjalankan kode berikut untuk memvisualisasikan 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()

Menginstal paket roda dari akun penyimpanan

Untuk menginstal pustaka dari penyimpanan, Anda perlu memasang ke akun penyimpanan Anda dengan menjalankan perintah berikut.

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

Kemudian, Anda dapat menggunakan perintah %pip install untuk menginstal paket roda yang diperlukan

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

Instal versi lain dari pustaka bawaan

Anda dapat menggunakan perintah berikut untuk melihat apa versi bawaan paket tertentu. Kami menggunakan panda sebagai contoh

%pip show pandas

Hasilnya adalah sebagai log berikut:

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

Anda dapat menggunakan perintah berikut untuk mengalihkan panda ke versi lain, katakanlah 1.2.4

%pip install pandas==1.2.4

Menghapus instalasi pustaka dengan cakupan sesi

Jika Anda ingin menghapus instalasi paket, yang diinstal pada sesi buku catatan ini, Anda dapat merujuk ke perintah berikut. Namun, Anda tidak dapat menghapus instalan paket bawaan.

%pip uninstall altair vega_datasets --yes

Menggunakan perintah %pip untuk menginstal pustaka dari file requirement.txt

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

Paket Scala atau Java dengan cakupan sesi

Untuk menentukan paket Java atau Scala dengan cakupan sesi, Anda dapat menggunakan opsi %%configure:

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

Catatan

  • Kami menyarankan agar Anda menjalankan %%configure di awal buku catatan Anda. Anda dapat merujuk ke dokumen ini untuk daftar lengkap parameter yang valid.

Paket R cakupan sesi (Pratinjau)

kumpulan analitik Azure Synapse mencakup banyak pustaka R populer di luar kotak. Anda juga dapat menginstal pustaka pihak ketiga tambahan selama sesi buku catatan Apache Spark Anda.

Catatan

  • Perintah pengelolaan pustaka R ini akan dinonaktifkan saat menjalankan pekerjaan alur. Jika Anda ingin menginstal paket dalam alur, Anda harus memanfaatkan kemampuan manajemen pustaka di tingkat kumpulan.
  • Pustaka R cakupan sesi secara otomatis diinstal di seluruh simpul driver dan pekerja.

Memasang paket

Anda dapat dengan mudah menginstal pustaka R dari CRAN.

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

Anda juga dapat menggunakan rekam jepret CRAN sebagai repositori untuk memastikan mengunduh versi paket yang sama setiap kali.

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

Menggunakan devtools untuk menginstal paket

Pustaka devtools menyederhanakan pengembangan paket untuk mempercepat tugas umum. Pustaka ini diinstal dalam runtime Azure Synapse Analytics default.

Anda dapat menggunakan devtools untuk menentukan versi pustaka tertentu untuk diinstal. Pustaka ini akan diinstal di semua simpul dalam kluster.

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

Demikian pula, Anda dapat menginstal pustaka langsung dari GitHub.

# Install a GitHub library. 

install_github("jtilly/matchingR") 

Saat ini, fungsi berikut devtools didukung dalam Azure Synapse Analytics:

Perintah Deskripsi
install_github() Menginstal paket R dari GitHub
install_gitlab() Menginstal paket R dari GitLab
install_bitbucket() Menginstal paket R dari BitBucket
install_url() Menginstal paket R dari URL arbitrer
install_git() Menginstal dari repositori git arbitrer
install_local() Menginstal dari file lokal pada disk
install_version() Menginstal dari versi tertentu di CRAN

Menampilkan pustaka yang terinstal

Anda dapat mengkueri semua pustaka yang diinstal dalam sesi Anda menggunakan library perintah .

library()

Anda dapat menggunakan packageVersion fungsi untuk memeriksa versi pustaka:

packageVersion("caesar")

Menghapus paket R dari sesi

Anda dapat menggunakan detach fungsi untuk menghapus pustaka dari namespace. Pustaka ini tetap berada di disk hingga dimuat lagi.

# detach a library

detach("package: caesar")

Untuk menghapus paket cakupan sesi dari buku catatan, gunakan remove.packages() perintah . Perubahan pustaka ini tidak berdampak pada sesi lain pada kluster yang sama. Pengguna tidak dapat menghapus instalasi atau menghapus pustaka bawaan runtime Azure Synapse Analytics default.

remove.packages("caesar")

Catatan

Anda tidak dapat menghapus paket inti seperti SparkR, SparklyR, atau R.

Pustaka R dengan cakupan sesi dan SparkR

Pustaka dengan cakupan buku catatan tersedia di pekerja 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)

Pustaka R cakupan sesi dan SparklyR

Dengan spark_apply() di SparklyR, Anda dapat menggunakan paket R apa pun di dalam Spark. Secara default, dalam sparklyr::spark_apply(), argumen paket diatur ke FALSE. Ini menyalin pustaka di libPaths saat ini kepada pekerja, memungkinkan Anda mengimpor dan menggunakannya pada pekerja. Misalnya, Anda dapat menjalankan hal berikut untuk menghasilkan pesan terenkripsi caesar dengan 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)

Langkah berikutnya