R geliştiricileri için Azure Databricks
Bu bölümde, R dilini kullanarak Azure Databricks'te not defterleri ve işler geliştirmeye yönelik bir kılavuz sağlanır.
Kullanmaya başlamak için temel bir iş akışı:
- Kodu içeri aktarma: Dosyalardan veya Git depolarından kendi kodunuzu içeri aktarın veya aşağıda listelenen bir öğreticiyi deneyin. Databricks, etkileşimli Azure Databricks not defterlerini kullanmayı öğrenmenizi önerir.
- Kodunuzu bir kümede çalıştırma: Kendi kümenizi oluşturun veya paylaşılan küme kullanma izinlerinizin olduğundan emin olun. Not defterinizi kümeye ekleyin ve not defterini çalıştırın.
Bunun ötesinde, daha belirli konulara dallayabilirsiniz:
- Apache Spark kullanarak daha büyük veri kümeleriyle çalışma
- Görselleştirme ekleme
- İş yükünüzü iş olarak otomatikleştirme
- Verilerinizi analiz etmek için makine öğrenmesini kullanma
- R geliştirici araçlarını kullanma
Öğreticiler
Aşağıdaki öğreticiler, yaygın iş akışları hakkında bilgi edinmek için örnek kod ve not defterleri sağlar. Not defteri örneklerini çalışma alanınıza aktarma yönergeleri için bkz. Not defterini içeri aktarma.
Başvuru
Aşağıdaki alt bölümler, Azure Databricks'te R ile geliştirmeye başlamanıza yardımcı olacak temel özellikleri ve ipuçlarını listeler.
Azure Databricks, Apache Spark'a R arabirimi sağlayan iki API'yi destekler: SparkR ve sparklyr.
SparkR
Bu makaleler SparkR için bir giriş ve başvuru sağlar. SparkR, dağıtılmış bir veri çerçevesi uygulaması sağlayan Apache Spark'a yönelik bir R arabirimidir. SparkR, büyük veri kümelerinde seçim, filtreleme ve toplama (R veri çerçevelerine benzer) gibi işlemleri destekler.
sparklyr
Bu makalede sparklyr'a giriş bilgileri sağlanmaktadır. sparklyr, Apache Spark için dplyr, ve DBI'ye benzer işlevler sağlayan bir R arabirimidir.broom
SparkR ve sparklyr karşılaştırması
Bu makalede SparkR ile sparklyr arasındaki temel benzerlikler ve farklar açıklanmaktadır.
SparkR ve sparklyr ile DataFrame'lerle ve tablolarla çalışma
Bu makalede Azure Databricks'te R data.frames, Spark DataFrames ve Spark tablolarıyla çalışmak için R, SparkR, sparklyr ve dplyr'nin nasıl kullanılacağı açıklanmaktadır.
Not defterleri ve Databricks Git klasörleriyle kodu yönetme
Azure Databricks not defterleri R'i destekler. Bu not defterleri Jupyter'ınkine benzer işlevler sağlar, ancak büyük veri kullanan yerleşik görselleştirmeler, hata ayıklama ve performans izleme için Apache Spark tümleştirmeleri ve makine öğrenmesi denemelerini izlemeye yönelik MLflow tümleştirmeleri gibi eklemeler sağlar. Not defterini içeri aktararak başlayın. Bir kümeye erişiminiz olduğunda, kümeye bir not defteri ekleyebilir ve not defterini çalıştırabilirsiniz.
Azure Databricks Git klasörleri , kullanıcıların not defterlerini ve diğer dosyaları Git depolarıyla eşitlemesine olanak tanır. Azure Databricks Git klasörleri kod sürümü oluşturma ve işbirliği konusunda yardımcı olur ve kodun tam deposunu Azure Databricks'e aktarmayı, geçmiş not defteri sürümlerini görüntülemeyi ve IDE geliştirmeyle tümleştirmeyi basitleştirebilir. Uzak git deposunu kopyalayarak başlayın. Daha sonra depo kopyasıyla not defterlerini açabilir veya oluşturabilir, not defterini bir kümeye ekleyebilir ve not defterini çalıştırabilirsiniz.
Kümeler
Azure Databricks işlem, hem tek düğümler hem de büyük kümeler için işlem yönetimi sağlar. Küme donanımlarını ve kitaplıklarını gereksinimlerinize göre özelleştirebilirsiniz. Veri bilimciler genellikle bir küme oluşturarak veya mevcut paylaşılan kümeyi kullanarak çalışmaya başlar. Bir kümeye erişiminiz olduğunda, kümeye bir not defteri ekleyebilir veya kümede bir iş çalıştırabilirsiniz.
- Yalnızca tek düğüm gerektiren küçük iş yükleri için veri bilimciler maliyet tasarrufu için tek düğüm işlem kullanabilir.
- Ayrıntılı ipuçları için bkz . İşlem yapılandırma önerileri.
- Yöneticiler, küme oluşturmayı basitleştirmek ve yönlendirmek için küme ilkeleri ayarlayabilir.
Tek düğümlü R ve dağıtılmış R
Azure Databricks kümeleri bir Apache Spark sürücü düğümünden ve sıfır veya daha fazla Spark çalışanı (yürütücü olarak da bilinir) düğümünden oluşur. Sürücü düğümü ekli not defteri durumunu korur, öğesini korur SparkContext
, not defteri ve kitaplık komutlarını yorumlar ve Spark yürütücüleriyle eşgüdümlü Spark ana dosyasını çalıştırır. Çalışan düğümleri, çalışan düğümü başına bir Spark yürütücüsü olan Spark yürütücülerini çalıştırır.
Tek düğümlü kümede bir sürücü düğümü vardır ve çalışan düğümü yoktur. Spark, Azure Databricks tarafından yönetilen tablolara erişimi desteklemek için yerel modda çalışır. Tek düğümlü kümeler RStudio, not defterleri ve kitaplıkları destekler ve büyük veri veya paralel işleme için Spark'a bağımlı olmayan R projeleri için kullanışlıdır. Bkz. Tek düğümlü veya çok düğümlü işlem.
R'nin işlemekte zorlanan veri boyutları (çok gigabayt veya petabayt) için bunun yerine birden çok düğümlü veya dağıtılmış kümeler kullanmanız gerekir. Dağıtılmış kümelerin bir sürücü düğümü ve bir veya daha fazla çalışan düğümü vardır. Dağıtılmış kümeler yalnızca RStudio, not defterleri ve kitaplıkları değil, sparkr ve sparkly gibi, aracılığıyla SparkContext
dağıtılmış kümeleri kullanmak üzere benzersiz olarak tasarlanmış R paketlerini destekler. Bu paketler, çalışan düğümleri arasında çeşitli Spark görevlerini ve komutlarını paralel olarak atamayı ve çalıştırmayı sağlayan tanıdık SQL ve DataFrame API'leri sağlar. Sparklyr ve SparkR hakkında daha fazla bilgi edinmek için bkz . SparkR ve sparklyr karşılaştırması.
Çalışan düğümleri arasında ilgili çalışmaların dağıtılmasından özellikle yararlanan bazı SparkR ve sparklyr işlevleri şunlardır:
- sparklyr::spark_apply: Küme içinde uygun ölçekte rastgele R kodu çalıştırır. Bu, özellikle yalnızca R'de veya Apache Spark'ta veya diğer Spark paketlerinde bulunmayan R paketlerinde kullanılabilen işlevleri kullanmak için kullanışlıdır.
- SparkR::d apply: Belirtilen işlevi bir
SparkDataFrame
öğesinin her bölümüne uygular. - SparkR::d applyCollect: Belirtilen işlevi bir
SparkDataFrame
öğesinin her bölümüne uygular ve sonuçları R'ye olarakdata.frame
geri toplar. - SparkR::gapply: Belirtilen sütunları kullanarak a'yi
SparkDataFrame
gruplandırır ve belirtilen R işlevini her gruba uygular. - SparkR::gapplyCollect: Belirtilen sütunları kullanarak a'yı
SparkDataFrame
gruplandırır, belirtilen R işlevini her gruba uygular ve sonucu R'ye olarakdata.frame
geri toplar. - SparkR::spark.lapply: Belirtilen işlevi bir öğe listesi üzerinde çalıştırarak hesaplamaları Spark ile dağıtır.
Örnekler için bkz. Spark'ta Dağıtılmış R: Kullanıcı Tanımlı İşlevler not defteri.
Databricks Container Services
Databricks Container Services , küme oluşturduğunuzda bir Docker görüntüsü belirtmenize olanak tanır. Databricks, R desteğine sahip bir Databricks Container Services kümesini başlatmak için örnek olarak Docker Hub'da databricksruntime/rbase temel görüntüsünü sağlar. Ayrıca bu temel görüntüyü oluşturmak için kullanılan Dockerfile dosyasına da bakın.
Kitaplıklar
Azure Databricks kümeleri, Apache Spark, Delta Lake ve daha birçok popüler kitaplık sağlayan Databricks Runtime'ı kullanır. Ayrıca, not defterleri ve işlerle kullanmak üzere kitaplıklara ek üçüncü taraf veya özel R paketleri de yükleyebilirsiniz.
Databricks Runtime sürüm notları sürümleri ve uyumluluğundaki varsayılan kitaplıklarla başlayın. Makine öğrenmesi iş yükleri için Machine Learning için Databricks Runtime'ı kullanın. Önceden yüklenmiş kitaplıkların tam listeleri için Databricks Runtime sürüm notları sürümleri ve uyumluluğunda hedef Databricks Runtime için "Yüklü R kitaplıkları" bölümüne bakın.
CraN veya diğer depolardaki kitaplıklarla not defterinizi veya iş ortamınızı değiştirmenizi sağlayan Not Defteri kapsamlı R kitaplıklarını kullanarak ortamınızı özelleştirebilirsiniz. Bunu yapmak için, içinden tanıdık install.packages işlevini utils
kullanabilirsiniz. Aşağıdaki örnek, varsayılan CRAN deposundan Arrow R paketini yükler:
install.packages("arrow")
Databricks Runtime'da bulunandan daha eski bir sürüme ihtiyacınız varsa, install_version işlevini devtools
çalıştırmak için bir not defteri kullanabilirsiniz. Aşağıdaki örnek CRAN'den dplyr sürüm 0.7.4'ü yükler:
require(devtools)
install_version(
package = "dplyr",
version = "0.7.4",
repos = "http://cran.r-project.org"
)
Bu şekilde yüklenen paketler bir kümede kullanılabilir. Bunların kapsamı, bunları yükleyen kullanıcı olarak belirlenmiştir. Bu, paket çakışmaları oluşturmadan aynı paketin birden çok sürümünü aynı işlem üzerine yüklemenize olanak tanır.
Gerekirse diğer kitaplıkları Küme kitaplıkları olarak yükleyebilirsiniz, örneğin CRAN'dan. Bunu yapmak için küme kullanıcı arabiriminde Kitaplıklar > Yeni > CRAN yükle'ye tıklayın ve kitaplığın adını belirtin. Bu yaklaşım özellikle SparkR veya sparklyr ile kullanıcı tanımlı işlevleri çağırmak istediğinizde önemlidir.
Diğer ayrıntılar için bkz . Kitaplıklar.
Bir kitaplığa özel paket yüklemek için:
Özel paketinizi komut satırından veya RStudio kullanarak oluşturun.
Özel paket dosyasını geliştirme makinenizden Azure Databricks çalışma alanınıza kopyalayın. Seçenekler için bkz . Kitaplıklar.
komutunu çalıştırarak
install.packages
özel paketi bir kitaplığa yükleyin.Örneğin, çalışma alanınızdaki bir not defterinden:
install.packages( pkgs = "/path/to/tar/file/<custom-package>.tar.gz", type = "source", repos = NULL )
Veya:
%sh R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz
Bir kitaplığa özel paket yükledikten sonra, kitaplığı arama yoluna ekleyin ve ardından kitaplığı tek bir komutla yükleyin.
Örneğin:
# Add the library to the search path one time.
.libPaths(c("/path/to/tar/file/", .libPaths()))
# Load the library. You do not need to add the library to the search path again.
library(<custom-package>)
Özel paketi kümedeki her düğüme kitaplık olarak yüklemek için Başlatma betikleri nedir? kullanmanız gerekir.
Görselleştirmeler
Azure Databricks R not defterleri işlevini kullanarak display
çeşitli görselleştirme türlerini destekler.
İşler
R iş yüklerini Azure Databricks'te zamanlanmış veya tetiklenen not defteri işi olarak otomatikleştirebilirsiniz.
- Kullanıcı arabirimi aracılığıyla iş oluşturma hakkında ayrıntılı bilgi için bkz . Databricks İşleri'ni yapılandırma ve düzenleme.
- İşler API'si işleri oluşturmanıza, düzenlemenize ve silmenize olanak tanır.
- Databricks CLI, İşler API'sini çağırmak için kullanışlı bir komut satırı arabirimi sağlar.
Makine öğrenimi
Databricks, tablosal verilerde geleneksel ML, görüntü işleme ve doğal dil işleme için derin öğrenme, öneri sistemleri, graf analizi ve daha fazlası dahil olmak üzere çok çeşitli makine öğrenmesi (ML) iş yüklerini destekler. Azure Databricks'te makine öğrenmesi hakkında genel bilgi için bkz . Machine Learning için Databricks Runtime.
ML algoritmaları için, Machine Learning için Databricks Runtime'da önceden yüklenmiş kitaplıkları kullanabilirsiniz. Özel kitaplıkları da yükleyebilirsiniz.
Makine öğrenmesi işlemleri (MLOps) için Azure Databricks, açık kaynak kitaplığı MLflow için yönetilen bir hizmet sağlar. MLflow İzleme ile model geliştirmeyi kaydedebilir ve modelleri yeniden kullanılabilir biçimlerde kaydedebilirsiniz. Modellerin üretime yükseltilmesini yönetmek ve otomatikleştirmek için MLflow Model Kayıt Defteri'ni kullanabilirsiniz. İşler ve Model Sunma, modelleri toplu iş olarak ve akış işlerini REST uç noktaları olarak barındırmaya olanak tanır. Daha fazla bilgi ve örnek için bkz . MLflow kullanarak ML yaşam döngüsü yönetimi veya MLflow R API belgeleri.
R geliştirici araçları
Azure Databricks not defterlerine ek olarak aşağıdaki R geliştirici araçlarını da kullanabilirsiniz:
SparkR'yi ve RStudio Desktop'ı Databricks Connect ile kullanma.
sparklyr ve RStudio Desktop'ı Databricks Connect ile kullanma.
R oturumu özelleştirme
Databricks Runtime 12.2 LTS ve üzerinde, site genelinde profil (.Rprofile
) dosyaları kullanılarak R oturumları özelleştirilebilir. R not defterleri, başlatma sırasında dosyayı R kodu olarak kaynağı oluşturur. Dosyayı değiştirmek için değerini R_HOME
bulun ve değiştirin $R_HOME/etc/Rprofile.site
. Databricks'in, Azure Databricks'te barındırılan RStudio için düzgün işlevsellik sağlamak için dosyaya yapılandırma eklediğini unutmayın. Herhangi bir öğesinin kaldırılması RStudio'nun beklendiği gibi çalışmamasına neden olabilir.
Databricks Runtime 11.3 LTS ve altında, ortam değişkeni DATABRICKS_ENABLE_RPROFILE=true
ayarlanarak bu davranış etkinleştirilebilir.