Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sumber daya sparklyr bahasa R berfungsi sebagai antarmuka ke Apache Spark. Sumber daya sparklr menyediakan mekanisme untuk berinteraksi dengan Spark dengan antarmuka R yang sudah dikenal. Gunakan sparklyr dengan definisi tugas batch Spark atau dengan notebook Microsoft Fabric interaktif.
sparklyr
digunakan dengan paket tidyverse lainnya - misalnya, dplyr. Microsoft Fabric mendistribusikan versi stabil terbaru dari sparklyr dan tidyverse dengan setiap kali rilis runtime. Anda dapat mengimpor sumber daya ini dan mulai menggunakan API.
Prasyarat
Dapatkan langganan Microsoft Fabric . Atau, daftar untuk uji coba Microsoft Fabric gratis.
Masuk ke Microsoft Fabric.
Gunakan pengalih pengalaman di sisi kiri bawah halaman beranda Anda untuk beralih ke Fabric.
Buka atau buat buku catatan. Untuk mempelajari caranya, lihat Cara menggunakan notebook Microsoft Fabric.
Atur opsi bahasa ke SparkR (R) untuk mengubah bahasa utama.
Lampirkan buku catatan Anda ke lakehouse (rumah tepi danau). Di sisi kiri, pilih Tambahkan untuk menambah lakehouse yang ada atau untuk membuat lakehouse.
Menyambungkan sparklyr ke kluster Synapse Spark
Metode koneksi fungsi spark_connect()
menghasilkan koneksi sparklyr
. Fungsi ini membangun metode koneksi baru bernama synapse
, yang terhubung ke sesi Spark yang ada. Ini secara signifikan mengurangi waktu mulai sesi sparklyr
. Metode koneksi ini tersedia dalam proyek sparklyr sumber terbuka. Dengan method = "synapse"
, Anda dapat menggunakan sparklyr
dan SparkR
dalam sesi yang sama, serta dengan mudah berbagi data di antara mereka. Sampel kode sel buku catatan berikut menggunakan spark_connect()
fungsi :
# 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", method = "synapse", config = config)
Menggunakan sparklyr untuk membaca data
Sesi Spark baru tidak berisi data. Anda kemudian harus memuat data ke memori sesi Spark Anda, atau mengarahkan Spark ke lokasi data sehingga sesi 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)
Dengan sparklyr
, Anda juga dapat write
dan read
data dari file Lakehouse menggunakan nilai jalur ABFS. Untuk membaca dan menulis ke Lakehouse, pertama-tama tambahkan Lakehouse ke sesi Anda. Di sisi kiri buku catatan, pilih Tambahkan untuk menambahkan Lakehouse yang sudah ada. Selain itu, Anda dapat membuat Lakehouse.
Untuk menemukan jalur ABFS Anda, klik kanan folder File di Lakehouse Anda, dan pilih Salin jalur ABFS. Tempelkan jalur Anda untuk mengganti abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
dalam sampel kode berikut:
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 berbagai cara untuk memproses data di dalam Spark, dengan:
- perintah
dplyr
- SparkSQL
- Transformer fitur Spark
Gunakan dplyr
Anda dapat menggunakan perintah dplyr
yang sudah dikenal untuk menyiapkan data di dalam Spark. Perintah berjalan di dalam Spark, mencegah transfer data yang tidak perlu antara R dan 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
Manipulasi Data dengan dplyr
sumber menyediakan informasi lebih lanjut tentang penggunaan dplyr dengan Spark.
sparklyr
dan dplyr
terjemahkan perintah R ke Spark SQL. Gunakan show_query()
untuk memperlihatkan kueri yang dihasilkan:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
Menggunakan SQL
Anda juga dapat menjalankan kueri SQL 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 Transformer Fitur
Kedua metode sebelumnya mengandalkan pernyataan SQL. Spark menyediakan perintah yang membuat beberapa transformasi data lebih nyaman, tanpa menggunakan SQL. Misalnya, ft_binarizer()
perintah menyederhanakan pembuatan kolom baru yang menunjukkan apakah nilai di kolom lain melebihi ambang batas tertentu atau tidak:
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
Sumber daya Reference -FT menawarkan daftar lengkap Transformer Fitur Spark yang tersedia melalui sparklyr
.
Berbagi data antara sparklyr
dan SparkR
Ketika Anda terhubung sparklyr
ke kluster synapse spark dengan method = "synapse"
, baik sparklyr
dan SparkR
tersedia dalam sesi yang sama dan dapat dengan mudah berbagi data di antara mereka sendiri. Anda dapat membuat tabel spark di sparklyr
, dan membacanya dari SparkR
:
# load the sparklyr package
library(sparklyr)
# Create table in `sparklyr`
mtcars_sparklyr <- copy_to(sc, df = mtcars, name = "mtcars_tbl", overwrite = TRUE, repartition = 3L)
# Read table from `SparkR`
mtcars_sparklr <- SparkR::sql("select cyl, count(*) as n
from mtcars_tbl
GROUP BY cyl
ORDER BY n DESC")
head(mtcars_sparklr)
Pembelajaran mesin
Contoh berikut menggunakan ml_linear_regression()
agar sesuai dengan model regresi linier. Model ini menggunakan himpunan data bawaan mtcars
untuk mencoba memprediksi konsumsi bahan bakar (mpg
) mobil berdasarkan berat (wt
) mobil dan jumlah silinder (cyl
) mesin mobil. Semua kasus di sini mengasumsikan hubungan linier antara mpg
dan masing-masing fitur kami.
Menghasilkan himpunan data pengujian dan pelatihan
Gunakan pemisahan - 70% untuk pelatihan dan 30% - untuk menguji model. Perubahan pada rasio ini menyebabkan 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)
Melatih model
Latih model Regresi Logistik.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Gunakan summary()
untuk mempelajari lebih lanjut tentang kualitas model kami, dan signifikansi statistik dari setiap prediktor kami:
summary(fit)
Gunakan model
Panggilan ml_predict()
untuk menerapkan model ke himpunan data pengujian:
pred <- ml_predict(fit, partitions$test)
head(pred)
Kunjungi Referensi - ML untuk daftar model Spark ML yang tersedia melalui sparklyr.
Putuskan sambungan dari kluster Spark
Panggil spark_disconnect()
, atau pilih tombol Hentikan sesi di atas pita buku catatan, untuk mengakhiri sesi Spark Anda:
spark_disconnect(sc)
Konten terkait
Pelajari selengkapnya tentang fungsionalitas R: