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:
- Yeni bir ortam oluşturun
- Gerekli kitaplıkları ortama yükleme
- 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.
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.
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
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:
Not defteri şeridinde çalışma dilini SparkR (R) olarak değiştirin.
Aşağıdaki komutu bir not defteri hücresinde çalıştırarak caesar kitaplığını yükleyin.
install.packages("caesar")
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.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin