Udostępnij za pośrednictwem


Usługa Azure Databricks dla deweloperów języka R

Ta sekcja zawiera przewodnik po tworzeniu notesów i zadań w usłudze Azure Databricks przy użyciu języka R.

Podstawowym przepływem pracy na potrzeby rozpoczynania pracy jest:

  1. Importuj kod: zaimportuj własny kod z plików lub repozytoriów Git albo spróbuj wykonać samouczek wymieniony poniżej. Usługa Databricks zaleca naukę korzystania z interaktywnych notesów usługi Azure Databricks.
  2. Uruchom kod w klastrze: utwórz własny klaster lub upewnij się, że masz uprawnienia do korzystania z udostępnionego klastra. Dołącz notatnik do klastra i uruchom go.

Poza tym możesz rozgałęzić się w bardziej szczegółowe tematy:

Samouczki

Poniższe samouczki zawierają przykładowy kod i notesy, aby dowiedzieć się więcej o typowych przepływach pracy. Zobacz Importowanie notesu , aby uzyskać instrukcje dotyczące importowania przykładów notesów do obszaru roboczego.

Referencja

Poniższe podsekcje zawierają listę kluczowych funkcji i wskazówek, które ułatwiają rozpoczęcie opracowywania w usłudze Azure Databricks za pomocą języka R.

Usługa Azure Databricks obsługuje dwa interfejsy API, które zapewniają interfejs języka R dla platformy Apache Spark: SparkR i sparklyr.

SparkR

Ważny

Usługa SparkR w usłudze Databricks jest uznawana za przestarzałą w środowisku Databricks Runtime 16.0 lub nowszym. Usługa Databricks zaleca zamiast tego używanie sparklyr.

Te artykuły zawierają wprowadzenie i odniesienie do platformy SparkR. SparkR to interfejs języka R dla platformy Apache Spark, który zapewnia implementację rozproszonej ramki danych. Usługa SparkR obsługuje operacje, takie jak wybór, filtrowanie i agregacja (podobne do ramek danych języka R), ale w dużych zestawach danych.

sparklyr

Ten artykuł zawiera wprowadzenie do sparklyr. sparklyr to interfejs języka R dla platformy Apache Spark, który zapewnia funkcje podobne do dplyr, broomi DBI.

Porównanie platformy SparkR i interfejsu sparklyr

W tym artykule wyjaśniono kluczowe podobieństwa i różnice między platformą SparkR i interfejsem sparklyr.

Praca z ramkami danych i tabelami w SparkR i sparklyr

W tym artykule opisano, jak używać języków R, SparkR, sparklyr i dplyr do pracy z tabelami data.frame języka R, Spark DataFrames i Spark w usłudze Azure Databricks.

Zarządzaj kodem za pomocą notesów i folderów Git w Databricks

Notatniki Azure Databricks obsługują język R. Te notatniki udostępniają funkcje podobne do tych z programu Jupyter, ale z dodatkami takimi jak wbudowane wizualizacje wykorzystujące duże zbiory danych, integracje z platformą Apache Spark na potrzeby debugowania i monitorowania wydajności oraz integracje MLflow do śledzenia eksperymentów z uczeniem maszynowym. Rozpocznij od importowania notatnika. Po uzyskaniu dostępu do klastra możesz podłączyć notatnik do klastra i uruchomić notatnik.

Foldery Git usługi Azure Databricks umożliwiają użytkownikom synchronizowanie notatników i innych plików z repozytoriami Git. Foldery Git usługi Azure Databricks ułatwiają przechowywanie wersji kodu i współpracę oraz upraszcza importowanie pełnego repozytorium kodu do usługi Azure Databricks, wyświetlanie wcześniejszych wersji notesów i integrowanie z programowaniem w środowisku IDE. Rozpocznij od klonowania zdalnego repozytorium Git . Następnie możesz otworzyć lub utworzyć notatniki przy użyciu klonu repozytorium, dołączyć notatnik do klastra i uruchomić notatnik.

Klastry

Środowisko obliczeniowe usługi Azure Databricks zapewnia zarządzanie obliczeniami zarówno dla pojedynczych węzłów, jak i dużych klastrów. Możesz dostosować sprzęt i biblioteki klastra zgodnie z potrzebami. Po uzyskaniu dostępu do klastra możesz dołączyć notes do klastra lub uruchomić zadanie w klastrze.

  • W przypadku małych obciążeń, które wymagają tylko jednego węzła, analitycy danych mogą korzystać z obliczeń z jednym węzłem w celu uzyskania oszczędności kosztów.
  • Aby uzyskać szczegółowe porady, zobacz Zalecenia dotyczące konfiguracji obliczeniowej.
  • Administratorzy mogą skonfigurować zasady klastra w celu uproszczenia i obsługi tworzenia klastra.

Jeden węzeł R i rozproszony język R

Klastry usługi Azure Databricks składają się z węzła sterownika platformy Apache Spark i zera lub większej liczby węzłów procesu roboczego platformy Spark (nazywanego również wykonawcą). Węzeł sterownika utrzymuje stan dołączonego notesu, interpretuje polecenia notesu i bibliotek, oraz uruchamia główny moduł Spark, który koordynuje z wykonawcami Spark. Węzły robocze uruchamiają procesy wykonawcze Spark, jeden proces wykonawczy Spark na węzeł roboczy.

Klaster z jednym węzłem ma jeden węzeł sterownika i nie ma węzłów roboczych, a platforma Spark działa w trybie lokalnym, aby obsługiwać dostęp do tabel zarządzanych przez usługę Azure Databricks. Klastry z jednym węzłem obsługują program RStudio, notesy i biblioteki oraz są przydatne w przypadku projektów języka R, które nie zależą od platformy Spark na potrzeby przetwarzania danych big data ani przetwarzania równoległego. Zobacz obliczenia z jednym węzłem .

W przypadku rozmiarów danych, które R ma trudności z przetwarzaniem (wiele gigabajtów lub petabajtów), należy użyć klastrów wielowęzłowych lub rozproszonych. Klastry rozproszone mają jeden węzeł sterownika i co najmniej jeden węzeł roboczy. Klastry rozproszone obsługują nie tylko program RStudio, notesy i biblioteki, ale pakiety języka R, takie jak SparkR i sparkly, które są unikatowo zaprojektowane do używania klastrów rozproszonych za pośrednictwem programu SparkContext. Te pakiety udostępniają znane interfejsy API SQL i DataFrame, które umożliwiają przypisywanie i uruchamianie różnych zadań i poleceń platformy Spark równolegle między węzłami roboczymi. Aby dowiedzieć się więcej na temat sparklyr i SparkR, zobacz Porównanie SparkR i sparklyr.

Niektóre funkcje SparkR i sparklyr, które szczególnie korzystają z dystrybucji powiązanej pracy między węzłami roboczymi, obejmują następujące:

  • sparklyr::spark_apply: uruchamia dowolny kod języka R na dużą skalę w klastrze. Jest to szczególnie przydatne w przypadku korzystania z funkcji, które są dostępne tylko w pakietach języka R lub R, które nie są dostępne na platformie Apache Spark ani w innych pakietach Spark.
  • SparkR::dapply: stosuje określoną funkcję do każdej partycji SparkDataFrame.
  • SparkR::dapplyCollect: stosuje określoną funkcję do każdej partycji SparkDataFrame i zbiera wyniki z powrotem do R w formie data.frame.
  • SparkR::gapply: grupuje SparkDataFrame przy użyciu określonych kolumn i stosuje określoną funkcję języka R do każdej grupy.
  • SparkR::gapplyCollect: Grupuje SparkDataFrame przy użyciu określonych kolumn, stosuje określoną funkcję języka R do każdej grupy i zbiera wynik z powrotem do języka R jako data.frame.
  • SparkR::spark.lapply: uruchamia określoną funkcję na liście elementów, dystrybuując obliczenia za pomocą platformy Spark.

Aby zapoznać się z przykładami, zobacz notes Distributed R: User Defined Functions in Spark (Rozproszone funkcje języka R: funkcje zdefiniowane przez użytkownika na platformie Spark).

Usługi kontenerowe Databricks

Usługa Databricks Container Services umożliwia określenie obrazu platformy Docker podczas tworzenia klastra. Databricks udostępnia bazowy obraz databricksruntime/rbase w Docker Hub jako przykład uruchamiania klastra usług Databricks Container Services z obsługą R. Zobacz również Dockerfile, który jest używany do generowania tego obrazu podstawowego.

Biblioteki

Klastry usługi Azure Databricks korzystają z środowiska Databricks Runtime, które udostępnia wiele popularnych bibliotek, takich jak Apache Spark, Delta Lake i inne. Możesz również zainstalować dodatkowe pakiety języka R, zarówno pochodzące od innych firm, jak i niestandardowe, w bibliotekach do użycia z notesami i zadaniami.

Zacznij od bibliotek domyślnych w informacjach o wersji środowiska Databricks Runtime i zgodności. Użyj środowiska Databricks Runtime na potrzeby obciążeń uczenia maszynowego. Aby uzyskać pełną listę wstępnie zainstalowanych bibliotek, zobacz sekcję "Zainstalowane biblioteki R" dla docelowego środowiska Databricks Runtime w uwagach o wydaniach i kompatybilności Databricks Runtime.

Środowisko można dostosować przy użyciu notatnikowych bibliotek R, które umożliwiają modyfikowanie notatnika lub środowiska zadania za pomocą bibliotek z usługi CRAN lub innych repozytoriów. W tym celu możesz użyć znanej funkcji install.packages z pliku utils. Poniższy przykład instaluje pakiet Arrow R z domyślnego repozytorium CRAN:

install.packages("arrow")

Jeśli potrzebujesz starszej wersji niż ta, która jest uwzględniona w środowisku Databricks Runtime, możesz użyć notesu, aby uruchomić funkcję install_version z witryny devtools. W poniższym przykładzie instaluje się dplyr w wersji 0.7.4 z usługi CRAN:

require(devtools)

install_version(
  package = "dplyr",
  version = "0.7.4",
  repos   = "http://cran.r-project.org"
)

Pakiety zainstalowane w ten sposób są dostępne w klastrze. Są one ograniczone do użytkownika, który je instaluje. Dzięki temu można zainstalować wiele wersji tego samego pakietu na tym samym obliczeniach bez tworzenia konfliktów pakietów.

Możesz zainstalować inne biblioteki jako biblioteki klastra zgodnie z potrzebami, na przykład z sieci CRAN. W tym celu w interfejsie użytkownika klastra kliknij pozycję Biblioteki > Zainstaluj nowy > pakiet CRAN i określ nazwę biblioteki. Takie podejście jest szczególnie ważne w przypadku wywoływania funkcji zdefiniowanych przez użytkownika za pomocą pakietu SparkR lub biblioteki sparklyr.

Aby uzyskać więcej informacji, zobacz Biblioteki.

Aby zainstalować pakiet niestandardowy w bibliotece:

  1. Skompiluj pakiet niestandardowy z poziomu wiersza polecenia lub przy użyciu programu RStudio.

  2. Skopiuj plik pakietu z twojej maszyny deweloperskiej do swojego obszaru roboczego usługi Azure Databricks. Aby uzyskać informacje o opcjach, zobacz Biblioteki.

  3. Zainstaluj pakiet niestandardowy w bibliotece, uruchamiając polecenie install.packages.

    Na przykład z notesu w twoim obszarze roboczym:

    install.packages(
      pkgs  = "/path/to/tar/file/<custom-package>.tar.gz",
      type  = "source",
      repos = NULL
    )
    

    Lub:

    %sh
    R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz
    

Po zainstalowaniu pakietu niestandardowego w bibliotece dodaj bibliotekę do ścieżki wyszukiwania, a następnie załaduj bibliotekę za pomocą jednego polecenia.

Na przykład:

# 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>)

Aby zainstalować pakiet niestandardowy jako bibliotekę na każdym węźle w klastrze, należy użyć skryptów inicjalizacyjnych.

Wizualizacje

Notesy R w usłudze Azure Databricks obsługują różne typy wizualizacji za pomocą funkcji display.

Stanowiska

Zadania języka R można zautomatyzować jako zaplanowane lub wyzwalane zadanie notebooku w usłudze Azure Databricks.

  • Aby uzyskać szczegółowe informacje na temat tworzenia zadania za pośrednictwem interfejsu użytkownika, zobacz Konfigurowanie i edytowanie zadań usługi Databricks.
  • Interfejs API zadań umożliwia tworzenie, edytowanie i usuwanie zadań.
  • Interfejs Databricks CLI udostępnia wygodny wiersz poleceń do wywoływania interfejsu API zadań.

Uczenie maszynowe

Usługa Databricks obsługuje szeroką gamę obciążeń uczenia maszynowego, w tym tradycyjne uczenie maszynowe na danych tabelarycznych, uczenie głębokie do przetwarzania obrazów i języka naturalnego, systemy rekomendacji, analizę grafów i nie tylko. Aby uzyskać ogólne informacje na temat uczenia maszynowego w usłudze Azure Databricks, zobacz Databricks Runtime for Machine Learning (Środowisko uruchomieniowe usługi Databricks na potrzeby uczenia maszynowego).

W przypadku algorytmów uczenia maszynowego można używać wstępnie zainstalowanych bibliotek w środowisku Databricks Runtime na potrzeby uczenia maszynowego. Można również zainstalować biblioteki niestandardowe.

W przypadku operacji uczenia maszynowego (MLOps) usługa Azure Databricks udostępnia usługę zarządzaną dla biblioteki open source MLflow. Dzięki funkcji śledzenia MLflow można rejestrować tworzenie modeli i zapisywać modele w formatach wielokrotnego użytku. Możesz użyć Rejestru modeli MLflow do zarządzania i automatyzowania promocji modeli do produkcji. Zadania i obsługa modeli umożliwiają hostowanie modeli jako zadań wsadowych i przesyłanych strumieniowo jako punktów końcowych REST. Aby uzyskać więcej informacji i przykładów, zobacz MLflow for gen AI agent and ML model lifecycle albo dokumentacja API R dla MLflow.

Narzędzia deweloperskie języka R

Oprócz notesów usługi Azure Databricks można również użyć następujących narzędzi deweloperskich języka R:

Dostosowywanie sesji języka R

W środowisku Databricks Runtime 12.2 LTS lub nowszym sesje języka R można dostosować przy użyciu ogólnosystemowych plików profilu (.Rprofile). Notatniki R będą ładować plik jako kod R podczas uruchamiania. Aby zmodyfikować plik, znajdź wartość R_HOME i zmodyfikuj $R_HOME/etc/Rprofile.site. Pamiętaj, że usługa Databricks dodała konfigurację w pliku w celu zapewnienia prawidłowej funkcjonalności hostowanego programu RStudio w usłudze Azure Databricks. Usunięcie któregokolwiek z tych elementów może spowodować, że program RStudio nie będzie działać zgodnie z oczekiwaniami.

W środowisku Databricks Runtime 11.3 LTS i poniżej można włączyć to zachowanie, ustawiając zmienną środowiskową DATABRICKS_ENABLE_RPROFILE=true.

Dodatkowe zasoby