Bagikan melalui


Azure Databricks untuk pengembang R

Bagian ini menyediakan panduan untuk mengembangkan notebook dan pekerjaan di Azure Databricks menggunakan bahasa R.

Alur kerja dasar untuk memulai adalah:

  1. Impor kode: Impor kode Anda sendiri dari file atau repositori Git, atau coba tutorial yang tercantum di bawah ini. Databricks merekomendasikan pembelajaran untuk menggunakan notebook Azure Databricks interaktif.
  2. Jalankan kode Anda pada kluster: Buat kluster Anda sendiri, atau pastikan Anda memiliki izin untuk menggunakan kluster bersama. Lampirkan notebook Anda ke kluster, dan jalankan notebook.

Di luar ini, Anda dapat bercabang ke topik yang lebih spesifik:

Tutorial

Tutorial di bawah ini menyediakan contoh kode dan notebook untuk mempelajari alur kerja umum. Lihat Mengimpor buku catatan untuk instruksi tentang mengimpor contoh notebook ke ruang kerja Anda.

Referensi

Subbagian di bawah ini mencantumkan fitur dan tips utama untuk membantu Anda mulai melakukan pengembangan di Azure Databricks dengan R.

Azure Databricks mendukung dua API yang menyediakan antarmuka R ke Apache Spark: SparkR dan sparklyr.

SparkR

Artikel ini memberikan pengenalan dan referensi untuk SparkR. SparkR adalah antarmuka R ke Apache Spark yang menyediakan implementasi bingkai data terdistribusi. SparkR mendukung operasi seperti pemilihan, pemfilteran, dan agregasi (mirip dengan bingkai data R) tetapi pada himpunan data yang besar.

sparklyr

Artikel ini menyediakan pengantar sparklyr. sparklyr adalah antarmuka R ke Apache Spark yang menyediakan fungsionalitas yang mirip dengan dplyr, broom, dan DBI.

Membandingkan SparkR dan sparklyr

Artikel ini menjelaskan kesamaan dan perbedaan utama antara SparkR dan sparklyr.

Bekerja dengan DataFrames dan tabel dengan SparkR dan sparklyr

Artikel ini menjelaskan cara menggunakan tabel R, SparkR, sparklyr, dan dplyr untuk bekerja dengan tabel R data.frames, Spark DataFrames, dan Spark di Azure Databricks.

Mengelola kode dengan notebook dan folder Databricks Git

Notebook Azure Databricks mendukung R. Buku catatan ini menyediakan fungsionalitas yang mirip dengan Jupyter, tetapi dengan penambahan seperti visualisasi bawaan menggunakan data yang besar, integrasi Apache Spark untuk penelusuran kesalahan dan pemantauan performa, dan integrasi MLflow untuk melacak eksperimen pembelajaran mesin. Mulailah dengan mengimpor notebook. Setelah Anda memiliki akses ke kluster, Anda bisa melampirkan notebook ke kluster dan menjalankan notebook.

Folder Git Azure Databricks memungkinkan pengguna menyinkronkan notebook dan file lain dengan repositori Git. Folder Azure Databricks Git membantu penerapan versi dan kolaborasi kode, dan dapat menyederhanakan impor repositori kode lengkap ke Azure Databricks, melihat versi buku catatan sebelumnya, dan mengintegrasikan dengan pengembangan IDE. Mulailah dengan mengkloning repositori Git jarak jauh. Anda kemudian dapat membuka atau membuat buku catatan dengan klon repositori, melampirkan buku catatan ke kluster, dan menjalankan buku catatan.

Kluster

Komputasi Azure Databricks menyediakan manajemen komputasi untuk simpul tunggal dan kluster besar. Anda dapat menyesuaikan perangkat keras dan pustaka kluster sesuai dengan kebutuhan Anda. Ilmuwan data umumnya akan mulai bekerja baik dengan membuat kluster atau menggunakan kluster bersama yang ada. Setelah Anda memiliki akses ke kluster, Anda dapat melampirkan buku catatan ke kluster atau menjalankan pekerjaan pada kluster.

  • Untuk beban kerja kecil yang hanya memerlukan simpul tunggal, ilmuwan data dapat menggunakan komputasi simpul tunggal untuk penghematan biaya.
  • Untuk tips terperinci, lihat Rekomendasi konfigurasi komputasi.
  • Administrator dapat menyiapkan kebijakan kluster untuk menyederhanakan dan memandu pembuatan kluster.

Node tunggal R dan R terdistribusi

Kluster Azure Databricks terdiri dari node driver Apache Spark dan nol atau lebih simpul pekerja Spark (juga dikenal sebagai eksekutor). Simpul driver mempertahankan status notebook terlampir, mempertahankan SparkContext, menginterpretasikan perintah buku catatan dan pustaka, dan menjalankan master Spark yang berkoordinasi dengan pelaksana Spark. Simpul pekerja menjalankan eksekutor Spark, satu eksekutor Spark per simpul pekerja.

Kluster simpul tunggal memiliki satu node driver dan tidak ada simpul pekerja, dengan Spark berjalan dalam mode lokal untuk mendukung akses ke tabel yang dikelola oleh Azure Databricks. Kluster simpul tunggal mendukung RStudio, notebook, dan pustaka, dan berguna untuk proyek R yang tidak bergantung pada Spark untuk big data atau pemrosesan paralel. Lihat Simpul tunggal atau komputasi multi-simpul.

Untuk ukuran data yang sulit diproses R (banyak gigabyte atau petabyte), Anda harus menggunakan beberapa node atau kluster terdistribusi sebagai gantinya. Kluster terdistribusi memiliki satu simpul driver dan satu atau beberapa simpul pekerja. Kluster terdistribusi tidak hanya mendukung RStudio, notebook, dan pustaka, tetapi paket R seperti SparkR dan sparkly, yang dirancang secara unik untuk menggunakan kluster terdistribusi melalui SparkContext. Paket ini menyediakan API SQL dan DataFrame yang familier, yang memungkinkan penetapan dan menjalankan berbagai tugas dan perintah Spark secara paralel di seluruh simpul pekerja. Untuk mempelajari selengkapnya tentang sparklyr dan SparkR, lihat Membandingkan SparkR dan sparklyr.

Beberapa fungsi SparkR dan sparklyr yang mengambil keuntungan khusus untuk mendistribusikan pekerjaan terkait di seluruh simpul pekerja meliputi hal-hal berikut:

  • sparklyr::spark_apply: Menjalankan kode R arbitrer dalam skala besar dalam kluster. Ini sangat berguna untuk menggunakan fungsionalitas yang hanya tersedia dalam paket R, atau R yang tidak tersedia di Apache Spark atau paket Spark lainnya.
  • SparkR::d aplikasi: Menerapkan fungsi yang ditentukan ke setiap partisi SparkDataFrame.
  • SparkR::d applyCollect: Menerapkan fungsi yang ditentukan untuk setiap partisi SparkDataFrame dan mengumpulkan hasil kembali ke R sebagai data.frame.
  • SparkR::gapply: Mengelompokkan dengan SparkDataFrame menggunakan kolom yang ditentukan dan menerapkan fungsi R yang ditentukan untuk setiap grup.
  • SparkR::gapplyCollect: Mengelompokkan dengan SparkDataFrame menggunakan kolom yang ditentukan, menerapkan fungsi R yang ditentukan untuk setiap grup, dan mengumpulkan hasilnya kembali ke R sebagai data.frame.
  • SparkR::spark.lapply: Menjalankan fungsi yang ditentukan melalui daftar elemen, mendistribusikan komputasi dengan Spark.

Misalnya, lihat notebook Distributed R: User Defined Functions di Spark.

Layanan Kontainer Databricks

Layanan Kontainer Databricks memungkinkan Anda menentukan gambar Docker saat membuat kluster. Databricks menyediakan gambar dasar databricksruntime/rbase di Docker Hub sebagai contoh untuk meluncurkan kluster Databricks Container Services dengan dukungan R. Lihat juga Dockerfile yang digunakan untuk menghasilkan gambar dasar ini.

Pustaka

Kluster Azure Databricks menggunakan Databricks Runtime, yang menyediakan banyak pustaka populer luar biasa, termasuk Apache Spark, Delta Lake, dan banyak lagi. Anda juga dapat menginstal paket R pihak ketiga atau kustom tambahan ke dalam pustaka untuk digunakan dengan buku catatan dan pekerjaan.

Mulailah dengan pustaka default dalam versi dan kompatibilitas catatan rilis Databricks Runtime. Gunakan Databricks Runtime untuk Pembelajaran Mesin untuk beban kerja pembelajaran mesin. Untuk daftar lengkap pustaka yang telah diinstal sebelumnya, lihat bagian "Pustaka R terinstal" untuk Runtime Databricks target dalam versi dan kompatibilitas catatan rilis Runtime Databricks.

Anda bisa mengkustomisasi lingkungan Anda dengan menggunakan pustaka R lingkup Notebook, yang memungkinkan Anda mengubah buku catatan atau lingkungan pekerjaan Anda dengan pustaka dari CRAN atau repositori lainnya. Untuk melakukan ini, Anda dapat menggunakan fungsi install.packages yang familier dari utils. Contoh berikut menginstal paket Arrow R dari repositori CRAN default:

install.packages("arrow")

Jika Anda memerlukan versi yang lebih lama dari apa yang disertakan dalam Databricks Runtime, Anda bisa menggunakan notebook untuk menjalankan fungsi install_version dari devtools. Contoh berikut menginstal dplyr versi 0.7.4 dari CRAN:

require(devtools)

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

Paket yang diinstal dengan cara ini tersedia di seluruh kluster. Mereka dilingkupkan ke pengguna yang menginstalnya. Ini memungkinkan Anda menginstal beberapa versi paket yang sama pada komputasi yang sama tanpa membuat konflik paket.

Anda dapat menginstal pustaka lain sebagai Pustaka kluster sesuai kebutuhan, misalnya dari CRAN. Untuk melakukan ini, di antarmuka pengguna kluster, klik Pustaka > Instal CRAN baru > dan tentukan nama pustaka. Pendekatan ini sangat penting ketika Anda ingin memanggil fungsi yang ditentukan pengguna dengan SparkR atau sparklyr.

Untuk detail selengkapnya, lihat Pustaka.

Untuk menginstal paket kustom ke pustaka:

  1. Buat paket kustom Anda dari baris perintah atau dengan menggunakan RStudio.

  2. Salin file paket kustom dari komputer pengembangan Anda ke ruang kerja Azure Databricks Anda. Untuk opsi, lihat Pustaka.

  3. Instal paket kustom ke pustaka dengan menjalankan install.packages.

    Misalnya, dari buku catatan di ruang kerja Anda:

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

    Atau:

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

Setelah Anda menginstal paket kustom ke pustaka, tambahkan pustaka ke jalur pencarian lalu muat pustaka dengan satu perintah.

Contohnya:

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

Untuk menginstal paket kustom sebagai pustaka pada setiap simpul dalam kluster, Anda harus menggunakan Apa itu skrip init?.

Visualisasi

Notebook R SQL Azure Databricks mendukung berbagai jenis visualisasi menggunakan fungsi display.

Pekerjaan

Anda dapat mengotomatiskan beban kerja R sebagai pekerjaan notebook terjadwal atau dipicu di Azure Databricks.

Pembelajaran Mesin

Databricks mendukung berbagai beban kerja pembelajaran mesin (ML), termasuk ML tradisional pada data tabular, pembelajaran mendalam untuk visi komputer dan pemrosesan bahasa alami, sistem rekomendasi, analitik grafik, dan banyak lagi. Untuk informasi umum tentang pembelajaran mesin di Azure Databricks, lihat Databricks Runtime untuk Pembelajaran Mesin.

Untuk algoritma ML, Anda dapat menggunakan pustaka yang telah diinstal sebelumnya di Databricks Runtime untuk Pembelajaran Mesin. Anda juga dapat memasang pustaka kustom.

Untuk operasi pembelajaran mesin (MLOps), Azure Databricks menyediakan layanan terkelola untuk pustaka sumber terbuka MLflow. Dengan MLflow Tracking , Anda dapat merekam pengembangan model dan menyimpan model dalam format yang dapat digunakan kembali. Anda dapat menggunakan MLflow Model Registry untuk mengelola dan mengotomatiskan promosi model terhadap produksi. Pekerjaan dan Model Melayani memungkinkan model hosting sebagai pekerjaan batch dan streaming sebagai titik akhir REST. Untuk informasi dan contoh selengkapnya, lihat manajemen siklus hidup ML menggunakan MLflow atau dokumen MLflow R API.

Alat pengembang R

Selain notebook Azure Databricks, Anda juga dapat menggunakan alat pengembang R berikut:

Kustomisasi sesi R

Dalam Databricks Runtime 12.2 LTS ke atas, sesi R dapat disesuaikan dengan menggunakan file profil seluruh situs (.Rprofile). Buku catatan R akan sumber file sebagai kode R selama startup. Untuk mengubah file, temukan nilai R_HOME dan ubah $R_HOME/etc/Rprofile.site. Perhatikan bahwa Databricks telah menambahkan konfigurasi dalam file untuk memastikan fungsionalitas yang tepat untuk RStudio yang dihosting di Azure Databricks. Menghapus salah satu dari itu dapat menyebabkan RStudio tidak berfungsi seperti yang diharapkan.

Dalam Databricks Runtime 11.3 LTS dan di bawahnya, perilaku ini dapat diaktifkan dengan mengatur variabel DATABRICKS_ENABLE_RPROFILE=truelingkungan .

Sumber Daya Tambahan: