Aracılığıyla paylaş


Oturum kapsamlı paketleri yönetme

Havuz düzeyi paketlerine ek olarak, not defteri oturumunun başında oturum kapsamlı kitaplıklar da belirtebilirsiniz. Oturum kapsamlı kitaplıklar, not defteri oturumunda Python, jar ve R paketlerini belirtmenize ve kullanmanıza olanak sağlar.

Oturum kapsamlı kitaplıkları kullanırken aşağıdaki noktaları göz önünde bulundurmak önemlidir:

  • Oturum kapsamlı kitaplıkları yüklediğinizde, yalnızca geçerli not defterinin belirtilen kitaplıklara erişimi olur.
  • Bu kitaplıkların aynı Spark havuzunu kullanan diğer oturumlar veya işler üzerinde hiçbir etkisi yoktur.
  • Bu kitaplıklar temel çalışma zamanı ve havuz düzeyi kitaplıklarının üzerine yüklenir ve en yüksek önceliği alır.
  • Oturum kapsamlı kitaplıklar oturumlar arasında kalıcı olmaz.

Oturum kapsamlı Python paketleri

Oturum kapsamlı Python paketlerini environment.yml dosyası aracılığıyla yönetme

Oturum kapsamlı Python paketlerini belirtmek için:

  1. Seçili Spark havuzuna gidin ve oturum düzeyi kitaplıkları etkinleştirdiğinizden emin olun. Apache Spark havuzu>PaketleriniYönet> sekmesine giderek bu ayarı etkinleştirebilirsiniz. Oturum paketlerini etkinleştirme ekran görüntüsü.
  2. Ayar uygulandıktan sonra bir not defteri açıp Oturum>Paketlerini Yapılandır'ı seçebilirsiniz. Oturum paketlerini belirtme işleminin ekran görüntüsü.Yml dosyasını karşıya yükleme işleminin ekran görüntüsü.
  3. Burada, bir oturum içinde paketleri yüklemek veya yükseltmek için bir Conda environment.yml dosyasını karşıya yükleyebilirsiniz. Oturum başladıktan sonra belirtilen kitaplıklar mevcut olacak. Oturum sona erdikten sonra bu kitaplıklar artık kullanılamaz.

Oturum kapsamlı Python paketlerini %pip ve %conda komutları aracılığıyla yönet

Apache Spark not defteri oturumunuz sırasında ek üçüncü taraf kitaplıkları veya özel kitaplıklarınızı yüklemek için popüler %pip ve %conda komutlarını kullanabilirsiniz. Bu bölümde, bazı yaygın senaryoları göstermek için %pip komutlarını kullanacağız.

Not

  • Yeni kitaplıklar yüklemek istiyorsanız not defterinizin ilk hücresine %pip ve %conda komutlarını yerleştirmenizi öneririz. Python yorumlayıcısı, değişiklikleri etkili bir şekilde getirmek için oturum düzeyi kitaplığı yönetildikten sonra yeniden başlatılır.
  • İşlem hattı işleri çalıştırılırken Python kitaplıklarını yönetmeye yönelik bu komutlar devre dışı bırakılır. İşlem hattı içinde bir paket yüklemek istiyorsanız, havuz düzeyinde kitaplık yönetimi özelliklerinden yararlanmanız gerekir.
  • Oturum kapsamlı Python kitaplıkları hem sürücü hem de çalışan düğümlerine otomatik olarak yüklenir.
  • Şu %conda komutları desteklenmez: oluşturma, temizleme, karşılaştırma, etkinleştirme, devre dışı bırakma, çalıştırma, paket.
  • Komutların tam listesi için %pip komutlarına ve %conda komutlarına başvurabilirsiniz.

Üçüncü taraf paketi yükleme

PyPI'dan kolayca bir Python kitaplığı yükleyebilirsiniz.

# Install vega_datasets
%pip install altair vega_datasets

Yükleme sonucunu doğrulamak için aşağıdaki kodu çalıştırarak 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()

Depolama hesabından tekerlek paketi yükleme

Kitaplığı depolama alanından yüklemek için aşağıdaki komutları çalıştırarak depolama hesabınıza bağlamanız gerekir.

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

Ardından gerekli tekerlek paketini yüklemek için %pip install komutunu kullanabilirsiniz

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

Yerleşik kitaplığın başka bir sürümünü yükleme

Belirli bir paketin yerleşik sürümünü görmek için aşağıdaki komutu kullanabilirsiniz. Örnek olarak pandas kullanıyoruz

%pip show pandas

Sonuç şu günlük gibidir:

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

Pandas'ı başka bir sürüme (örneğin 1.2.4) değiştirmek için aşağıdaki komutu kullanabilirsiniz

%pip install pandas==1.2.4

Oturum kapsamlı kitaplığı kaldırma

Bu not defteri oturumunda yüklü olan bir paketi kaldırmak istiyorsanız aşağıdaki komutlara başvurabilirsiniz. Ancak, yerleşik paketleri kaldıramazsınız.

%pip uninstall altair vega_datasets --yes

requirement.txt dosyasından kitaplıkları yüklemek için %pip komutunu kullanma

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

Oturum kapsamlı Java veya Scala paketleri

Oturum kapsamlı Java veya Scala paketlerini belirtmek için şu %%configure seçeneği kullanabilirsiniz:

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

Not

  • %%configure komutunu not defterinizin başında çalıştırmanızı öneririz. Geçerli parametrelerin tam listesi için bu belgeye bakabilirsiniz.

Oturum kapsamlı R paketleri (Önizleme)

Azure Synapse Analytics havuzları, kullanıma hazır birçok popüler R kitaplığı içerir. Apache Spark not defteri oturumunuz sırasında fazladan üçüncü taraf kitaplıkları da yükleyebilirsiniz.

Not

  • İşlem hattı işleri çalıştırılırken R kitaplıklarını yönetmeye yönelik bu komutlar devre dışı bırakılır. İşlem hattı içinde bir paket yüklemek istiyorsanız, havuz düzeyinde kitaplık yönetimi özelliklerinden yararlanmanız gerekir.
  • Oturum kapsamlı R kitaplıkları hem sürücü hem de çalışan düğümlerine otomatik olarak yüklenir.

Paketi yükleme

CRAN'dan kolayca R kitaplığı yükleyebilirsiniz.

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

Her seferinde aynı paket sürümünü indirdiğinizden emin olmak için depo olarak CRAN anlık görüntülerini de kullanabilirsiniz.

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

Paketleri yüklemek için geliştirici araçlarını kullanma

Kitaplık, devtools ortak görevleri hızlandırmak için paket geliştirmeyi basitleştirir. Bu kitaplık varsayılan Azure Synapse Analytics çalışma zamanına yüklenir.

Bir kitaplığın yüklenecek belirli bir sürümünü belirtmek için kullanabilirsiniz devtools . Bu kitaplıklar küme içindeki tüm düğümlere yüklenir.

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

Benzer şekilde, doğrudan GitHub'dan bir kitaplık yükleyebilirsiniz.

# Install a GitHub library. 

install_github("jtilly/matchingR") 

Şu anda aşağıdaki devtools işlevler Azure Synapse Analytics'de desteklenmektedir:

Komut Açıklama
install_github() GitHub'dan R paketi yükler
install_gitlab() GitLab'den R paketi yükler
install_bitbucket() BitBucket'ten R paketi yükler
install_url() Rastgele bir URL'den R paketi yükler
install_git() Rastgele git deposundan yükler
install_local() Diskte yerel bir dosyadan yükler
install_version() CRAN'de belirli bir sürümden yükler

Yüklü kitaplıkları görüntüleme

komutunu kullanarak library oturumunuzun içinde yüklü olan tüm kitaplıkları sorgulayabilirsiniz.

library()

kitaplığının packageVersion sürümünü denetlemek için işlevini kullanabilirsiniz:

packageVersion("caesar")

R paketini oturumdan kaldırma

ad alanından bir kitaplığı kaldırmak için işlevini kullanabilirsiniz detach . Bu kitaplıklar yeniden yüklenene kadar diskte kalır.

# detach a library

detach("package: caesar")

Not defterinden oturum kapsamlı bir paketi kaldırmak için komutunu kullanın remove.packages() . Bu kitaplık değişikliği aynı kümedeki diğer oturumları etkilemez. Kullanıcılar varsayılan Azure Synapse Analytics çalışma zamanının yerleşik kitaplıklarını kaldıramaz veya kaldıramaz.

remove.packages("caesar")

Not

SparkR, SparklyR veya R gibi temel paketleri kaldıramazsınız.

Oturum kapsamlı R kitaplıkları ve SparkR

Not defteri kapsamlı kitaplıklar SparkR çalışanlarında kullanılabilir.

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)

Oturum kapsamlı R kitaplıkları ve SparklyR

SparklyR'de spark_apply() ile Spark içindeki herhangi bir R paketini kullanabilirsiniz. Varsayılan olarak sparklyr::spark_apply() içinde paketler bağımsız değişkeni YANLIŞ olarak ayarlanır. Bu, geçerli libPath'lerdeki kitaplıkları çalışanlara kopyalar ve bunları içeri aktarmanıza ve çalışanlarda kullanmanıza olanak sağlar. Örneğin, sparklyr::spark_apply( ile sezar şifreli bir ileti oluşturmak için aşağıdakileri çalıştırabilirsiniz:

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)

Sonraki adımlar