Microsoft Fabric'te Apache Spark kitaplıklarını yönetme

Kitaplık, geliştiricilerin işlevsellik sağlamak için içeri aktarabileceği önceden yazılmış bir kod koleksiyonudur. Kitaplıkları kullanarak, sık kullanılan görevleri gerçekleştirmek için sıfırdan kod yazmak zorunda kalmadan zaman ve çabadan tasarruf edebilirsiniz. Bunun yerine, kitaplığı içeri aktarın ve istenen işlevselliği elde etmek için işlevlerini ve sınıflarını kullanın. Microsoft Fabric, kitaplıkları yönetmenize ve kullanmanıza yardımcı olacak birden çok mekanizma sağlar.

  • Yerleşik kitaplıklar: Her Fabric Spark çalışma zamanı, önceden yüklenmiş popüler kitaplıklardan oluşan zengin bir küme sağlar. Yerleşik kitaplık listesinin tamamını Doku Spark Çalışma Zamanı'nda bulabilirsiniz.
  • Ortak kitaplıklar: Ortak kitaplıklar, şu anda desteklenen PyPI ve Conda gibi depolardan kaynaklanmıştır.
  • Özel kitaplıklar: Özel kitaplıklar, sizin veya kuruluşunuzun derlediğiniz koda başvurur. Doku bunları .whl, .jar ve .tar.gz biçimlerinde destekler. Doku yalnızca R dili için .tar.gz destekler. Python özel kitaplıkları için .whl biçimini kullanın.

Çalışma alanında kitaplık yönetimi ayarı

Önemli

Çalışma alanı ayarındaki kitaplık yönetimi artık desteklenmiyor. Çalışma alanı kitaplıklarını ve Spark özelliklerini varsayılan ortama geçirmek için bkz . Çalışma alanı kitaplıklarını ve Spark özelliklerini geçirme.

Kitaplık yönetimi en iyi yöntemlerinin özeti

Aşağıdaki senaryolarda en iyi yöntemler açıklanmaktadır.

Senaryo 1: Yönetici çalışma alanı için varsayılan kitaplıkları ayarlar

Varsayılan kitaplıkları ayarlamak için çalışma alanının yöneticisi olmanız gerekir. Yönetici olarak şu görevleri gerçekleştirebilirsiniz:

  1. Yeni bir ortam oluşturun
  2. Gerekli kitaplıkları ortama yükleme
  3. Bu ortamı varsayılan çalışma alanı olarak ekle

Çalışma alanı içindeki not defterleri ve Spark iş tanımları Çalışma Alanı ayarlarına eklenir. Çalışma alanının varsayılan ortamında yüklü kitaplıklarla oturumlar başlatır.

Senaryo 2: Bir veya birden çok kod öğesi için kitaplık belirtimlerini kalıcı hale

Kitaplık belirtimlerini kalıcı hale getirmek istiyorsanız, kitaplıkları bir ortama yükleyin ve kod öğelerine ekleyin.

Bu yaklaşımın bir avantajı, ortak kitaplıklar gerektiren kodu her zaman çalıştırma çabasını kaydetmesidir. Ortama başarıyla yüklendikten sonra, ortam ekliyse kitaplıklar tüm Spark oturumlarında etkili olur.

Bir diğer avantajı, yaklaşımın çalışma alanı düzeyinden daha düşük kitaplık yapılandırması ayrıntı düzeyini desteklemesidir. Bir ortam birden çok kod yapıtına eklenebilir. Aynı kitaplıkları gerektiren bir çalışma alanında not defterlerinin veya Spark iş tanımlarının bir alt kümesine sahipseniz, bunları aynı ortama ekleyin. Çalışma alanının yöneticisi, üyesi veya katkıda bulunanı ortamı oluşturabilir, düzenleyebilir ve ekleyebilir.

Senaryo 3: Etkileşimli çalıştırmada satır içi yükleme

Tek seferlik kullanımla ilgileniyorsanız, etkileşimli bir not defteri içinde, yüklü olmayan bir kitaplığın satır içi yüklemesi en uygun seçenektir. Doku'daki satır içi komutlar, kitaplığın geçerli not defteri Spark oturumunda etkili olmasını sağlar. Kitaplık farklı oturumlarda kalıcı olmaz.

Not defterini çalıştırma izni olan kullanıcılar Spark oturumunda diğer kitaplıkları yükleyebilir.

Desteklenen kitaplık türlerinin özeti

Kitaplık türü Ortam kitaplığı yönetimi Satır içi yükleme
Python Genel (PyPI & Conda) Desteklenir Desteklenir
Python Özel (.whl) Desteklenir Desteklenir
R Genel (CRAN) Desteklenmez Desteklenir
R özel (.tar.gz) Desteklenir Desteklenir
Kavanoz Özel kitaplık olarak desteklenir Desteklenmez

Önemli

şu anda .jar kitaplığında sınırlamalar vardır.

  • Scala kullanıcıları için .jar dosyası bir ortama başarıyla yüklenebilir ancak Spark/Scala oturumlarınız için etkili değildir. Yükleme, yerleşik kitaplığı farklı bir kitaplıkla geçersiz kılar. Yeni .jar oturumlarda çalışır.
  • Python kullanıcıları için tüm .jar dosyaları şu anda bir ortamda desteklenmiyor. Bir ortama başarıyla yüklenebilirler ancak PySpark oturumlarında etkili olmazlar.
  • Bunun yerine .jar dosyalarını not defteri oturumu düzeyinde yükleyebilirsiniz.

Satır içi yükleme

Satır içi komutlar Python kitaplıklarını ve R kitaplıklarını destekler.

Python satır içi yükleme

Python yorumlayıcısı, kitaplık değişikliğini uygulamak için yeniden başlatılır. Komut hücresini çalıştırmadan önce tanımlanan tüm değişkenler kaybolur. Python paketlerini ekleme, silme veya güncelleştirmeye yönelik tüm komutları not defterinizin başına yerleştirmenizi kesinlikle öneririz.

yerine !pipöneririz%pip. !pip , aşağıdaki sınırlamalara sahip bir IPython yerleşik kabuk komutudur:

  • !pip yürütücü düğümlerine değil yalnızca sürücü düğümüne bir paket yükler.
  • aracılığıyla !pip yüklenen paketler, yerleşik paketlerle çakışmaları veya paketlerin zaten bir not defterine içeri aktarılıp aktarılmadığını etkilemez.

Ancak, %pip bu senaryoları işler. aracılığıyla %pip yüklenen kitaplıklar hem sürücü hem de yürütücü düğümlerinde kullanılabilir ve kitaplık zaten içeri aktarılmış olsa bile hala etkilidir.

İpucu

Komut %conda install genellikle komutun %pip install yeni Python kitaplıklarını yüklemesinden daha uzun sürer. Tüm bağımlılıkları denetler ve çakışmaları çözer.

Daha fazla güvenilirlik ve kararlılık için kullanmak %conda install isteyebilirsiniz. Yüklemek istediğiniz kitaplığın çalışma zamanı ortamında önceden yüklenmiş kitaplıklarla çakışmadığından eminseniz kullanabilirsiniz %pip install .

Kullanılabilir tüm Python satır içi komutları ve netleştirmeleri için bkz . %pip komutları ve %conda komutları.

Python ortak kitaplıklarını satır içi yükleme aracılığıyla yönetme

Bu örnekte, kitaplıkları yönetmek için satır içi komutların nasıl kullanılacağına bakın. Python için güçlü bir görselleştirme kitaplığı olan altair'i tek seferlik veri keşfi için kullanmak istediğinizi varsayalım. Kitaplığın çalışma alanınızda yüklü olmadığını varsayalım. Aşağıdaki örnek, adımları göstermek için conda komutlarını kullanır.

Not defterinizin veya diğer öğelerin diğer oturumlarını etkilemeden not defteri oturumunuzda altair'i etkinleştirmek için satır içi komutları kullanabilirsiniz.

  1. Not defteri kod hücresinde aşağıdaki komutları çalıştırın. İlk komut altair kitaplığını yükler. Ayrıca görselleştirmek için kullanabileceğiniz bir anlam modeli içeren vega_datasets yükleyin.

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    Hücrenin çıktısı yüklemenin sonucunu gösterir.

  2. Aşağıdaki kodu başka bir not defteri hücresinde çalıştırarak paketi ve anlam modelini içeri aktarın.

    import altair as alt
    from vega_datasets import data
    
  3. Artık oturum kapsamlı altair kitaplığıyla oyun oynayabilirsiniz.

    # load a simple dataset as a pandas DataFrame
    cars = data.cars()
    alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    ).interactive()
    

Python özel kitaplıklarını satır içi yükleme aracılığıyla yönetme

Python özel kitaplıklarınızı not defterinize eklenmiş olan lakehouse'un Dosya klasörüne yükleyebilirsiniz. Lakehouse'unuza gidin, Dosya klasöründeki ... simgesini seçin ve özel kitaplığı karşıya yükleyin.

Karşıya yükledikten sonra, not defteri oturumunuza özel kitaplığı yüklemek için aşağıdaki komutu kullanın.

# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl             

R satır içi yükleme

Doku, R kitaplıklarını yönetmek için , remove.packages()ve devtools:: komutlarını desteklerinstall.packages(). Tüm kullanılabilir R satır içi komutları ve netleştirmeleri için bkz . install.packages komutu ve remove.package komutu.

Satır içi yükleme aracılığıyla R ortak kitaplıklarını yönetme

R ortak kitaplığı yükleme adımlarını izlemek için bu örneği izleyin.

R akışı kitaplığı yüklemek için:

  1. Not defteri şeridinde çalışma dilini SparkR (R) olarak değiştirin.

  2. Aşağıdaki komutu bir not defteri hücresinde çalıştırarak caesar kitaplığını yükleyin.

    install.packages("caesar")
    
  3. Artık bir Spark işiyle oturum kapsamlı Sezar kitaplığıyla oyun oynayabilirsiniz.

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

Satır içi yükleme aracılığıyla Jar kitaplıklarını yönetme

.jar dosyaları aşağıdaki komutla not defteri oturumlarında desteklenir.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

Kod hücresi örnek olarak Lakehouse'un depolama alanını kullanıyor. Not defteri gezgininde, tam dosya ABFS yolunu kopyalayabilir ve kodun içinde değiştirebilirsiniz. ABFS yolunu alma işleminin ekran görüntüsü.