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: