Aracılığıyla paylaş


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.

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

Aşağıdaki senaryolarda, Microsoft Fabric'te kitaplıkları kullanırken 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

Not defterleriniz ve Spark iş tanımlarınız Çalışma Alanı ayarlarına eklendiğinde, ç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

Farklı kod öğeleri için ortak kitaplıklarınız varsa ve sık güncelleştirme gerekmiyorsa, kitaplıkları bir ortama yükleyin ve kod öğelerine ekleyin.

Ortamlardaki kitaplıkların yayımlanırken etkili olması biraz zaman alacaktır. Normalde kitaplıkların karmaşıklık düzeyine bağlı olarak 5-15 dakika sürer. Bu işlem sırasında sistem olası çakışmaları çözmeye ve gerekli bağımlılıkları indirmeye yardımcı olur.

Bu yaklaşımın avantajlarından biri, Spark oturumu ortam ekli olarak başlatıldığında başarıyla yüklenen kitaplıkların kullanılabilir olacağının garanti edilmesidir. Projeleriniz için ortak kitaplıkları koruma çabasını kaydeder.

Kararlılığı olan işlem hattı senaryoları için kesinlikle önerilir.

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

Etkileşimli olarak kod yazmak için not defterlerini kullanıyorsanız, fazladan yeni PyPI/conda kitaplıkları eklemek veya özel kitaplıklarınızı tek seferlik kullanım için doğrulamak için satır içi yükleme kullanmak en iyi yöntemdir. Doku'daki satır içi komutlar, kitaplığın geçerli not defteri Spark oturumunda etkili olmasını sağlar. Hızlı yüklemeye izin verir, ancak yüklenen kitaplık farklı oturumlarda kalıcı olmaz.

%pip install Zaman zaman kitaplık çakışmalarına yol açabilecek farklı bağımlılık ağaçları oluşturulduğundan, satır içi komutlar işlem hattı çalıştırmalarında varsayılan olarak kapatılır ve işlem hatlarınızda kullanılması ÖNERILMEZ.

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) Özel kitaplık olarak desteklenir Desteklenir
Kavanoz Özel kitaplık olarak desteklenir Desteklenir

Satır içi yükleme

Satır içi komutlar, her not defteri oturumlarındaki kitaplıkların yönetilmesini destekler.

Python satır içi yükleme

Sistem, kitaplık değişikliğini uygulamak için Python yorumlayıcısını yeniden başlatı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.

Python kitaplıklarını yönetmeye yönelik satır içi komutlar, varsayılan olarak çalıştırılan not defteri işlem hattında devre dışı bırakılır. İşlem hattı için etkinleştirmek %pip install istiyorsanız, not defteri etkinlik parametrelerine bool parametresi True değerine eşit olduğundan "_inlineInstallationEnabled" ekleyin.

Not defteri işlem hattı çalıştırması için pip yüklemesini etkinleştirme yapılandırmasını gösteren ekran görüntüsü.

Not

zaman %pip install zaman tutarsız sonuçlara yol açabilir. Kitaplığı bir ortama yüklemeniz ve işlem hattında kullanmanız önerilir. Not defteri başvuru çalıştırmalarında, Python kitaplıklarını yönetmeye yönelik satır içi komutlar desteklenmez. Yürütmenin doğruluğundan emin olmak için bu satır içi komutların başvuruda bulunan not defterinden kaldırılması önerilir.

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 defterinizin kaynaklar klasörüne veya ekli ortama yükleyebilirsiniz. Kaynak klasörleri, her not defteri ve ortam tarafından sağlanan yerleşik dosya sistemidir. Diğer ayrıntılar için bkz . Not defteri kaynakları . Karşıya yükledikten sonra, özel kitaplığı bir kod hücresine sürükleyip bırakabilirsiniz. Kitaplığı yüklemek için satır içi komut otomatik olarak oluşturulur. Veya yüklemek için aşağıdaki komutu kullanabilirsiniz.

# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/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ü.