Udostępnij przez


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.

Podstawowy przepływ pracy na start to:

  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 sparklyr, 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 o zakresie obliczeniowym zgodnie z potrzebami, na przykład z usługi CRAN. W tym celu w interfejsie użytkownika klastra kliknij pozycję Biblioteki > Zainstaluj nowe > 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 Instalowanie bibliotek.

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 Instalowanie bibliotek.

  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ń lakeflow.
  • 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 cykl życia modelu uczenia maszynowego MLflow lub dokumentację interfejsu API języka R platformy 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