หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ทรัพยากร Sparklyr ภาษา R ทําหน้าที่เป็นอินเทอร์เฟซกับ Apache Spark ทรัพยากร Sparklr มีกลไกในการโต้ตอบกับ Spark กับอินเทอร์เฟซ R ที่คุ้นเคย ใช้ sparklyr ผ่านข้อกําหนดงานแบบชุดงานของ Spark หรือด้วยสมุดบันทึก Microsoft Fabric แบบโต้ตอบ
sparklyr
ใช้กับแพคเกจ tidyverse อื่น ๆ - ตัวอย่างเช่น dplyr Microsoft Fabric กระจายรุ่นล่าสุดที่เสถียรของ sparklyr และ tidyverse กับทุกรุ่นรันไทม์ คุณสามารถนําเข้าแหล่งข้อมูลเหล่านี้ และเริ่มต้นใช้ API
ข้อกําหนดเบื้องต้น
รับ การสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนสําหรับ Microsoft Fabric รุ่นทดลองใช้ฟรี
ลงชื่อเข้าใช้ Microsoft Fabric
ใช้ตัวสลับประสบการณ์การใช้งานที่ด้านล่างซ้ายของหน้าหลักของคุณเพื่อเปลี่ยนเป็น Fabric
เปิดหรือสร้างสมุดบันทึก หากต้องการเรียนรู้วิธีการ ดู วิธีใช้สมุดบันทึก Microsoft Fabric
ตั้งค่าตัวเลือกภาษาเพื่อ SparkR (R) เพื่อเปลี่ยนภาษาหลัก
แนบสมุดบันทึกของคุณเข้ากับเลคเฮ้าส์ ทางด้านซ้าย เลือก เพิ่ม เพื่อเพิ่มเลคเฮ้าส์ที่มีอยู่แล้ว หรือเพื่อสร้างเลคเฮ้าส์
เชื่อมต่อ sparklyr กับคลัสเตอร์ Synapse Spark
spark_connect()
วิธีการเชื่อมต่อฟังก์ชันจะสร้างsparklyr
การเชื่อมต่อ ฟังก์ชันสร้างวิธีการเชื่อมต่อใหม่ที่ชื่อว่า synapse
ซึ่งเชื่อมต่อกับเซสชัน Spark ที่มีอยู่ ซึ่งจะช่วยลดเวลาเริ่มต้นเซสชัน sparklyr
ได้อย่างมาก วิธีการเชื่อมต่อนี้พร้อมใช้งานในโครงการ sparklyr โอเพนซอร์ส ด้วย method = "synapse"
คุณสามารถใช้ทั้ง sparklyr
และ SparkR
ในเซสชันเดียวกัน และ แชร์ข้อมูลระหว่างกันได้อย่างง่ายดาย ตัวอย่างรหัสเซลล์ของสมุดบันทึกต่อไปนี้ใช้ spark_connect()
ฟังก์ชัน:
# 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)
ใช้ sparklyr เพื่ออ่านข้อมูล
เซสชัน Spark ใหม่ไม่มีข้อมูล คุณต้องโหลดข้อมูลลงในหน่วยความจําของเซสชัน Spark ของคุณ หรือชี้ Spark ไปยังตําแหน่งที่ตั้งของข้อมูลเพื่อให้เซสชันสามารถเข้าถึงข้อมูลได้ตามต้องการ:
# 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)
ด้วย sparklyr
คุณยังสามารถ write
และข้อมูล read
จากไฟล์ Lakehouse โดยใช้ค่าเส้นทาง ABFS ได้ หากต้องการอ่านและเขียนลงในเลคเฮ้าส์ ก่อนอื่นให้เพิ่มเลคเฮาส์ในเซสชั่นของคุณ ทางด้านซ้ายของสมุดบันทึก ให้เลือก เพิ่ม เพื่อเพิ่มเลคเฮ้าส์ที่มีอยู่แล้ว นอกจากนี้คุณยังสามารถสร้างเลคเฮ้าส์ได้อีกด้วย
หากต้องการค้นหาเส้นทาง ABFS ให้คลิกขวาที่โฟลเดอร์ ไฟล์ ในเลคเฮ้าส์ของคุณ และเลือก คัดลอกเส้นทาง ABFS วางเส้นทางของคุณเพื่อแทนที่ abfss://xxxx@onelake.dfs.fabric.microsoft.com/xxxx/Files
ในตัวอย่างโค้ดต่อไปนี้:
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)
ใช้ sparklyr เพื่อจัดการข้อมูล
sparklyr
ให้วิธีการต่างๆ ในการประมวลผลข้อมูลภายใน Spark ด้วย:
- คําสั่ง
dplyr
- SparkSQL
- ตัวแปลงคุณลักษณะของ Spark
ใช้ dplyr
คุณสามารถใช้คําสั่ง dplyr
ที่คุ้นเคยเพื่อเตรียมข้อมูลภายใน Spark ได้ คําสั่งทํางานภายใน Spark ช่วยป้องกันการถ่ายโอนข้อมูลที่ไม่จําเป็นระหว่าง R และ 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
การจัดการข้อมูลด้วยdplyr
ทรัพยากรให้ข้อมูลเพิ่มเติมเกี่ยวกับการใช้ dplyr กับ Spark
sparklyr
และ dplyr
แปลคําสั่ง R ลงใน Spark SQL ใช้ show_query()
เพื่อแสดงคิวรีผลลัพธ์:
# show the dplyr commands that are to run against the Spark connection
dplyr::show_query(cargroup)
ใช้ SQL
คุณยังสามารถดําเนินการคิวรี SQL โดยตรงกับตารางภายในคลัสเตอร์ Spark ได้ วัตถุ spark_connection()
ใช้อินเทอร์เฟซ DBI สําหรับ Spark ดังนั้นคุณสามารถใช้ dbGetQuery()
เพื่อดําเนินการ SQL และส่งกลับผลลัพธ์เป็นเฟรมข้อมูล R:
library(DBI)
dbGetQuery(sc, "select cyl, count(*) as n from spark_mtcars
GROUP BY cyl
ORDER BY n DESC")
ใช้ตัวแปลงคุณลักษณะ
ทั้งสองวิธีก่อนหน้านี้ขึ้นอยู่กับคําสั่ง SQL Spark มีคําสั่งที่ทําให้การแปลงข้อมูลบางอย่างสะดวกยิ่งขึ้น โดยไม่ต้องใช้ SQL ตัวอย่างเช่น ft_binarizer()
คําสั่งลดความซับซ้อนของการสร้างคอลัมน์ใหม่ที่ระบุว่าค่าในคอลัมน์อื่นเกินเกณฑ์บางอย่างหรือไม่:
mtcars_tbl %>%
ft_binarizer("mpg", "over_20", threshold = 20) %>%
select(mpg, over_20) %>%
head(5)
ทรัพยากรการอ้างอิง -FT มีรายการทั้งหมดของ Spark Feature Transformers ที่พร้อมใช้งานผ่านsparklyr
แชร์ข้อมูลระหว่าง sparklyr
และ SparkR
เมื่อคุณ เชื่อมต่อกับ sparklyr
synapse spark cluster ด้วย method = "synapse"
ทั้ง sparklyr
และ SparkR
จะพร้อมใช้งานในเซสชันเดียวกัน และสามารถแชร์ข้อมูลระหว่างกันได้อย่างง่ายดาย คุณสามารถสร้างตาราง Spark ใน sparklyr
และอ่านจาก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)
การเรียนรู้ของเครื่อง
ตัวอย่างต่อไปนี้ใช้ ml_linear_regression()
เพื่อให้พอดีกับแบบจําลองการถดถอยเชิงเส้น แบบจําลองใช้ชุดข้อมูลในตัว mtcars
เพื่อพยายามคาดการณ์ปริมาณการใช้เชื้อเพลิง (mpg
) ของรถยนต์ตามน้ําหนัก (wt
) ของรถยนต์และจํานวนถัง (cyl
) ของเครื่องยนต์รถยนต์ กรณีทั้งหมดที่นี่ถือว่าเป็นความสัมพันธ์เชิงเส้นระหว่าง mpg
และแต่ละคุณลักษณะของเรา
สร้างชุดข้อมูลการทดสอบและการฝึกอบรม
ใช้การแยก - 70% สําหรับการฝึกและ 30% เพื่อทดสอบแบบจําลอง การเปลี่ยนแปลงอัตราส่วนนี้นําไปสู่แบบจําลองที่แตกต่างกัน:
# 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)
ฝึกแบบจําลอง
ฝึกแบบจําลองการถดถอยโลจิสติกส์
fit <- partitions$training %>%
ml_linear_regression(mpg ~ .)
fit
ใช้ summary()
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณภาพของแบบจําลองของเรา และนัยสําคัญทางสถิติของแต่ละตัวทํานายของเรา:
summary(fit)
ใช้แบบจําลอง
เรียกใช้ ml_predict()
เพื่อใช้แบบจําลองกับชุดข้อมูลทดสอบ:
pred <- ml_predict(fit, partitions$test)
head(pred)
เยี่ยมชม การอ้างอิง - ML สําหรับรายการของแบบจําลอง Spark ML ที่พร้อมใช้งานผ่าน sparklyr
ยกเลิกการเชื่อมต่อจากคลัสเตอร์ Spark
โทร spark_disconnect()
หรือเลือกปุ่ม หยุดเซสชัน ที่ด้านบนของริบบอนสมุดบันทึก เพื่อจบเซสชัน Spark ของคุณ:
spark_disconnect(sc)
เนื้อหาที่เกี่ยวข้อง
เรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันการทํางานของ R:
- วิธีใช้ SparkR
- วิธีใช้ Tidyverse
- การจัดการไลบรารี R
- สร้าง การแสดงภาพ R
- บทช่วยสอน : การคาดการณ์ราคาอะโวคาโด
- บทช่วยสอน : การคาดการณ์ความล่าช้าของเที่ยวบิน