Gunakan sparklyr

sparklyr adalah antarmuka R ke Apache Spark. Ini menyediakan mekanisme untuk berinteraksi dengan Spark menggunakan antarmuka R yang familier. Anda dapat menggunakan sparklyr melalui definisi kerja batch Spark atau dengan notebook Microsoft Fabric interaktif.

Penting

Microsoft Fabric saat ini dalam PRATINJAU. Informasi ini berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis. Microsoft tidak memberikan jaminan, dinyatakan atau tersirat, sehubungan dengan informasi yang diberikan di sini.

sparklyr digunakan bersama dengan paket rapi lainnya seperti dplyr. Microsoft Fabric mendistribusikan versi stabil terbaru dari sparklyr dan tidyverse dengan setiap rilis runtime. Anda dapat mengimpornya dan mulai menggunakan API.

Prasyarat

  • Langganan Power BI Premium. Jika Anda tidak memilikinya, lihat Cara membeli Power BI Premium.

  • Ruang kerja Power BI dengan kapasitas Premium yang ditetapkan. Jika Anda tidak memiliki ruang kerja, gunakan langkah-langkah dalam Membuat ruang kerja untuk membuatnya dan menetapkannya ke kapasitas Premium.

  • Masuk ke Microsoft Fabric.

  • Buka atau buat buku catatan. Untuk mempelajari caranya, lihat Cara menggunakan notebook Microsoft Fabric.

  • Ubah bahasa utama dengan mengatur opsi bahasa ke SparkR (R).

  • Lampirkan buku catatan Anda ke lakehouse. Di sisi kiri, pilih Tambahkan untuk menambahkan lakehouse yang ada atau buat lakehouse.

Menyambungkan sparklyr ke kluster Synapse Spark

Gunakan metode koneksi berikut untuk spark_connect() membuat sparklyr koneksi.

# connect sparklyr to your spark cluster
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)

Menggunakan sparklyr untuk membaca data

Sesi Spark baru tidak berisi data. Langkah pertama adalah memuat data ke memori sesi Spark Anda, atau mengarahkan Spark ke lokasi data sehingga dapat mengakses data sesuai permintaan.

# load the sparklyr package
library(sparklyr)

# copy data from R environment to the Spark session's memory
mtcars_tbl <- copy_to(sc, mtcars, "spark_mtcars", overwrite = TRUE)

head(mtcars_tbl)

Menggunakan sparklyr, Anda juga write dapat dan read data dari file Lakehouse menggunakan jalur ABFS. Untuk membaca dan menulis ke Lakehouse, pertama-tama tambahkan ke sesi Anda. Di sisi kiri buku catatan, pilih Tambahkan untuk menambahkan Lakehouse yang sudah ada atau buat Lakehouse.

Untuk menemukan jalur ABFS Anda, klik kanan pada folder File di Lakehouse Anda, lalu pilih Salin jalur ABFS. Tempelkan jalur Anda untuk mengganti abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files dalam kode ini:

temp_csv = "abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files/data/mtcars.csv"

# write the table to your lakehouse using the ABFS path
spark_write_csv(mtcars_tbl, temp_csv, header = TRUE, mode = 'overwrite')

# read the data as CSV from lakehouse using the ABFS path
mtcarsDF <- spark_read_csv(sc, temp_csv) 
head(mtcarsDF)

Menggunakan sparklyr untuk memanipulasi data

sparklyr menyediakan beberapa metode untuk memproses data di dalam Spark menggunakan:

  • dplyr Perintah
  • SparkSQL
  • Transformator fitur Spark

Gunakan dplyr

Anda dapat menggunakan perintah yang sudah dikenal dplyr untuk menyiapkan data di dalam Spark. Perintah berjalan di dalam Spark, sehingga tidak ada transfer data yang tidak perlu antara R dan Spark.

Klik Manipulasi Data dengan dplyr untuk melihat dokumentasi tambahan tentang menggunakan dplyr dengan Spark.

# count cars by the number of cylinders the engine contains (cyl), order the results descendingly
library(dplyr)

cargroup <- group_by(mtcars_tbl, cyl) %>%
  count() %>%
  arrange(desc(n))

cargroup

sparklyr dan dplyr terjemahkan perintah R ke Spark SQL untuk kami. Untuk melihat penggunaan show_query()kueri yang dihasilkan :

# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)

Menggunakan SQL

Dimungkinkan juga untuk menjalankan kueri SQL secara langsung terhadap tabel dalam kluster Spark. Objek spark_connection() mengimplementasikan antarmuka DBI untuk Spark, sehingga Anda dapat menggunakan dbGetQuery() untuk menjalankan SQL dan mengembalikan hasilnya sebagai bingkai data R:

library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")

Menggunakan Transformator Fitur

Kedua metode sebelumnya mengandalkan pernyataan SQL. Spark menyediakan perintah yang membuat beberapa transformasi data lebih nyaman, dan tanpa menggunakan SQL.

Misalnya, ft_binarizer() perintah menyederhanakan pembuatan kolom baru yang menunjukkan apakah nilai kolom lain berada di atas ambang tertentu.

Anda dapat menemukan daftar lengkap Transformator Fitur Spark yang tersedia melalui sparklyr dari Reference -FT.

mtcars_tbl %>% 
  ft_binarizer("mpg", "over_20", threshold = 20) %>% 
  select(mpg, over_20) %>% 
  head(5)

Pembelajaran Mesin

Berikut adalah contoh di mana kita menggunakan ml_linear_regression() untuk menyesuaikan model regresi linier. Kami menggunakan himpunan data bawaan mtcars , dan melihat apakah kami dapat memprediksi konsumsi bahan bakar mobil (mpg) berdasarkan beratnya (wt), dan jumlah silinder yang dikandung mesin (cyl). Kami berasumsi dalam setiap kasus bahwa hubungan antara mpg dan masing-masing fitur kami linier.

Menghasilkan himpunan data pengujian dan pelatihan

Gunakan pemisahan sederhana, 70% untuk pelatihan dan 30% untuk menguji model. Bermain dengan rasio ini dapat mengakibatkan model yang berbeda.

# split the dataframe into test and training dataframes

partitions <- mtcars_tbl %>%
  select(mpg, wt, cyl) %>% 
  sdf_random_split(training = 0.7, test = 0.3, seed = 2023)

Latih model

Latih model Regresi Logistik.

fit <- partitions$training %>%
  ml_linear_regression(mpg ~ .)

fit

Sekarang gunakan summary() untuk mempelajari lebih lanjut tentang kualitas model kami, dan signifikansi statistik dari masing-masing prediktor kami.

summary(fit)

Menggunakan model

Anda dapat menerapkan model pada himpunan data pengujian dengan memanggil ml_predict().

pred <- ml_predict(fit, partitions$test)

head(pred)

Untuk daftar model Spark ML yang tersedia melalui sparklyr kunjungi Referensi - ML

Putuskan sambungan dari kluster Spark

Anda bisa memanggil spark_disconnect() atau memilih tombol Hentikan sesi di atas pita buku catatan mengakhiri sesi Spark Anda.

spark_disconnect(sc)

Langkah berikutnya

Pelajari selengkapnya tentang fungsionalitas R: