Sparklyr kullanma
sparklyr , Apache Spark için bir R arabirimidir. Tanıdık R arabirimlerini kullanarak Spark ile etkileşime geçmek için bir mekanizma sağlar. Spark toplu iş tanımları aracılığıyla veya etkileşimli Microsoft Fabric not defterleriyle sparklyr kullanabilirsiniz.
sparklyr
dplyr gibi diğer tidyverse paketleriyle birlikte kullanılır. Microsoft Fabric, sparklyr ve tidyverse'in en son kararlı sürümünü her çalışma zamanı sürümüyle dağıtır. Bunları içeri aktarabilir ve API'yi kullanmaya başlayabilirsiniz.
Önkoşullar
Microsoft Fabric aboneliği alın. Alternatif olarak, ücretsiz bir Microsoft Fabric deneme sürümüne kaydolun.
Synapse Veri Bilimi deneyimine geçmek için giriş sayfanızın sol tarafındaki deneyim değiştiriciyi kullanın.
Not defterini açın veya oluşturun. Nasıl yapılacağını öğrenmek için bkz . Microsoft Fabric not defterlerini kullanma.
Birincil dili değiştirmek için dil seçeneğini SparkR (R) olarak ayarlayın.
Not defterinizi bir göle ekleyin. Sol tarafta Ekle'yi seçerek mevcut bir göl evi ekleyin veya bir göl evi oluşturun.
Synapse Spark kümesine sparklyr Bağlan
Bağlantı kurmak sparklyr
için içinde spark_connect()
aşağıdaki bağlantı yöntemini kullanın. mevcut spark oturumuna bağlanmanızı sağlayan adlı synapse
yeni bir bağlantı yöntemini destekliyoruz. Oturumun sparklyr
başlangıç süresini önemli ölçüde azaltır. Ayrıca bu bağlantı yöntemini açık kaynak sparklyr projesine de katkıda bulunduk. ile method = "synapse"
hem hem de sparklyr
SparkR
aynı oturumda kullanabilir ve aralarında kolayca veri paylaşabilirsiniz.
# 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)
Verileri okumak için sparklyr kullanma
Yeni Spark oturumu veri içermiyor. İlk adım, Spark oturumunuzun belleğine veri yüklemek veya Spark'ı isteğe bağlı olarak verilere erişebilmesi için verilerin konumuna getirmektir.
# 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)
kullanarak sparklyr
, ABFS yolunu kullanarak bir Lakehouse dosyasındaki verileri de write
read
kullanabilirsiniz. Bir Lakehouse'ı okumak ve yazmak için önce oturumunuza ekleyin. Not defterinin sol tarafında Ekle'yi seçerek mevcut bir Lakehouse ekleyin veya bir Lakehouse oluşturun.
ABFS yolunuzu bulmak için Lakehouse'unuzda Dosyalar klasörüne sağ tıklayın ve ARDıNDAN ABFS yolunu kopyala'yı seçin. Bu kodda değiştirmek abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
için yolunuzu yapıştırın:
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)
Verileri işlemek için sparklyr kullanma
sparklyr
spark içindeki verileri işlemek için aşağıdakini kullanarak birden çok yöntem sağlar:
dplyr
Komut- SparkSQL
- Spark'ın özellik transformatörleri
dplyr
komutunu kullanma
Spark'ın içinde verileri hazırlamak için tanıdık dplyr
komutları kullanabilirsiniz. Komutlar Spark içinde çalıştırıldığından R ile Spark arasında gereksiz veri aktarımları yoktur.
Spark ile dplyr
dplyr kullanma hakkında ek belgeler görmek için Ile Veri Düzenleme'ye tıklayın.
# 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
ve dplyr
R komutlarını bizim için Spark SQL'e çevirin. Sonuçta elde edilen sorguyu görmek için kullanın show_query()
:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
SQL kullanma
Spark kümesindeki tablolarda doğrudan SQL sorguları yürütmek de mümkündür. spark_connection()
nesnesi Spark için bir DBI arabirimi uygular, böylece SQL'i yürütmek ve sonucu R veri çerçevesi olarak döndürmek için kullanabilirsinizdbGetQuery()
:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
Özellik Transformatörlerini Kullanma
Önceki yöntemlerin her ikisi de SQL deyimlerini kullanır. Spark bazı veri dönüşümlerini SQL kullanmadan daha kullanışlı hale getiren komutlar sağlar.
Örneğin komutu, ft_binarizer()
başka bir sütunun değerinin belirli bir eşiğin üzerinde olup olmadığını gösteren yeni bir sütun oluşturulmasını basitleştirir.
Kullanılabilir Spark Özellik Transformatörlerinin tam listesini Reference -FT üzerinden sparklyr
bulabilirsiniz.
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
ve arasında sparklyr
veri paylaşma SparkR
ilemethod = "synapse"
synapse spark kümesine bağlandığınızdasparklyr
, hem hem de sparklyr
SparkR
aynı oturumda kullanabilir ve aralarında kolayca veri paylaşabilirsiniz. içinde sparklyr
spark tablosu oluşturabilir ve tablosundan SparkR
okuyabilirsiniz.
# 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)
Makine öğrenmesi
Doğrusal regresyon modelini sığdırmak için kullandığımız ml_linear_regression()
bir örnek aşağıda verilmiştır. Yerleşik mtcars
veri kümesini kullanırız ve bir arabanın yakıt tüketimini () ağırlığınawt
(mpg
) ve motorun içerdiği silindir sayısına () göre tahmin edip etebileceğimizi görürüzcyl
. Her durumda ve özelliklerimizin her biri arasındaki mpg
ilişkinin doğrusal olduğunu varsayarız.
Test ve eğitim veri kümeleri oluşturma
Bölme, eğitim için %70 ve modeli test etme için %30 kullanın. Bu oran ile oynamak farklı modellerde sonuç verir.
# 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)
Modeli eğitme
Lojistik Regresyon modelini eğitme.
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
Şimdi modelimizin kalitesi ve tahmincilerimizin istatistiksel önemi hakkında biraz daha fazla bilgi edinmek için kullanın summary()
.
summary(fit)
Modeli kullanma
komutunu çağırarak ml_predict()
modeli test veri kümesine uygulayabilirsiniz.
pred <- ml_predict(fit, partitions$test)
head(pred)
Sparklyr aracılığıyla kullanılabilen Spark ML modellerinin listesi için Başvuru - ML adresini ziyaret edin
Spark kümesi bağlantısını kesme
Spark oturumunuzu sonlandırmak için not defteri şeridinin üst kısmındaki Oturumu durdur düğmesini arayabilir spark_disconnect()
veya seçebilirsiniz.
spark_disconnect(sc)
İlgili içerik
R işlevleri hakkında daha fazla bilgi edinin:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin