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 notes do klastra i uruchom notes.

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.

Odwołanie

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

Te artykuły zawierają wprowadzenie i dokumentację dla 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 interfejsu 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 za pomocą aparatu SparkR i interfejsu 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ądzanie kodem za pomocą notesów i folderów Git usługi Databricks

Notesy usługi Azure Databricks obsługują język R. Te notesy udostępniają funkcje podobne do tych z programu Jupyter, ale z dodatkami takimi jak wbudowane wizualizacje korzystające z danych big data, integracje platformy Apache Spark na potrzeby debugowania i monitorowania wydajności oraz integracje MLflow na potrzeby śledzenia eksperymentów uczenia maszynowego. Rozpocznij od zaimportowania notesu. Po uzyskaniu dostępu do klastra możesz dołączyć notes do klastra i uruchomić notes.

Foldery Usługi Git usługi Azure Databricks umożliwiają użytkownikom synchronizowanie notesó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 sklonowania zdalnego repozytorium Git. Następnie możesz otworzyć lub utworzyć notesy za pomocą klonowania repozytorium, dołączyć notes do klastra i uruchomić notes.

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. Analitycy danych zazwyczaj rozpoczną pracę, tworząc klaster lub używając istniejącego udostępnionego klastra. 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, obsługuje SparkContextpolecenia , interpretuje notes i bibliotekę oraz uruchamia wzorzec platformy Spark, który koordynuje funkcje wykonawcze platformy Spark. Węzły robocze uruchamiają funkcje wykonawcze platformy Spark, jedną funkcję wykonawcą platformy Spark dla węzła roboczego.

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 lub wieloma węzłami.

W przypadku rozmiarów danych, które R ma trudności z przetwarzaniem (wiele gigabajtów lub petabajtów), należy zamiast tego użyć klastrów wielowęźle 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 interfejsu sparklyr i sparkR, zobacz Porównanie platform SparkR i sparklyr.

Niektóre funkcje Platformy SparkR i sparklyr, które korzystają z konkretnej korzyści z dystrybucji powiązanej pracy między węzłami procesu roboczego, obejmują następujące elementy:

  • 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::d apply: stosuje określoną funkcję do każdej partycji obiektu SparkDataFrame.
  • SparkR::d applyCollect: Stosuje określoną funkcję do każdej partycji obiektu SparkDataFrame i zbiera wyniki z powrotem do języka R jako data.frame.
  • SparkR::gapply: grupuje SparkDataFrame obiekt przy użyciu określonych kolumn i stosuje określoną funkcję języka R do każdej grupy.
  • SparkR::gapplyCollect: Grupuje SparkDataFrame obiekt 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 kontenerów usługi Databricks

Usługa Databricks Container Services umożliwia określenie obrazu platformy Docker podczas tworzenia klastra. Usługa Databricks udostępnia obraz podstawowy databricksruntime/rbase w usłudze Docker Hub jako przykład uruchamiania klastra usług Kontener Services usługi Databricks z obsługą języka R. Zobacz również plik Dockerfile 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 innych firm lub niestandardowych pakietów języka R 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 uczenia maszynowego na potrzeby obciążeń uczenia maszynowego. Aby uzyskać pełną listę wstępnie zainstalowanych bibliotek, zobacz sekcję "Zainstalowane biblioteki języka R" dla docelowego środowiska Databricks Runtime w wersjach i zgodności środowiska Databricks Runtime.

Środowisko można dostosować przy użyciu bibliotek języka R o zakresie notesu, które umożliwiają modyfikowanie notesu lub środowiska zadań 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 program dplyr jest instalowany 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 nową > sieć 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ą aparatu SparkR lub interfejsu 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 niestandardowy plik pakietu z maszyny deweloperów do 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 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ę w każdym węźle w klastrze, należy użyć skryptów inicjowania?

Wizualizacje

Notesy języka R usługi Azure Databricks obsługują różne typy wizualizacji przy użyciu display funkcji .

Stanowiska

Obciążenia języka R można zautomatyzować jako zaplanowane lub wyzwalane zadanie notesu 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 wiersza polecenia usługi Databricks udostępnia wygodny interfejs wiersza polecenia 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. Rejestr modeli MLflow umożliwia zarządzanie modelami i automatyzowanie ich podwyższania poziomu 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 zarządzanie cyklem życia uczenia maszynowego przy użyciu biblioteki MLflow lub dokumentacji interfejsu API języka R 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 plików profilu (.Rprofile) dla całej witryny. Notesy języka R będą źródłem pliku jako kodu języka R podczas uruchamiania. Aby zmodyfikować plik, znajdź wartość i zmodyfikuj R_HOME $R_HOME/etc/Rprofile.siteelement . 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