การจัดการไลบรารี R
ไลบรารีมีโค้ดที่นํามาใช้ใหม่ได้ซึ่งคุณอาจต้องการรวมไว้ในโปรแกรมหรือโครงการของคุณสําหรับ Microsoft Fabric Spark
Microsoft Fabric สนับสนุนรันไทม์ R ด้วยแพคเกจ R แบบโอเพนซอร์สที่ได้รับความนิยมมากมาย ซึ่งรวมถึง TidyVerse ที่ติดตั้งไว้ล่วงหน้า เมื่อเริ่มมีอินสแตนซ์ Spark ไลบรารีเหล่านี้จะรวมโดยอัตโนมัติและพร้อมใช้งานในสมุดบันทึกหรือข้อกําหนดงาน Spark ทันที
คุณอาจจําเป็นต้องอัปเดตไลบรารี R ของคุณด้วยเหตุผลหลายประการ ตัวอย่างเช่น หนึ่งในการขึ้นต่อกันหลักของคุณที่มีการเผยแพร่เวอร์ชันใหม่ หรือทีมของคุณได้สร้างแพคเกจแบบกําหนดเองที่คุณต้องการพร้อมใช้งานในคลัสเตอร์ Spark ของคุณ
ไลบรารีมีสองชนิดที่คุณอาจต้องการรวมตามสถานการณ์สมมติของคุณ:
ไลบรารีตัวดึงข้อมูล อ้างอิงถึงไลบรารีที่อยู่ในแหล่งข้อมูลสาธารณะหรือที่เก็บ เช่น CRAN หรือ GitHub
ไลบรารีแบบกําหนดเอง เป็นโค้ดที่คุณหรือองค์กรของคุณสร้างขึ้น .tar.gz สามารถจัดการได้ผ่านพอร์ทัลการจัดการไลบรารี
มีแพคเกจสองระดับที่ติดตั้งบน Microsoft Fabric:
สภาพแวดล้อม : จัดการไลบรารีผ่านสภาพแวดล้อม เพื่อใช้ไลบรารีชุดเดียวกันในสมุดบันทึกหรืองานหลายรายการซ้ํา
เซสชัน : การติดตั้งระดับเซสชันจะสร้างสภาพแวดล้อมสําหรับเซสชันสมุดบันทึกเฉพาะ การเปลี่ยนแปลงไลบรารีระดับเซสชันจะไม่ยังคงอยู่ระหว่างเซสชัน
สรุปลักษณะการทํางานการจัดการไลบรารี R ปัจจุบัน:
ชนิดไลบรารี | การติดตั้งสภาพแวดล้อม | การติดตั้งระดับเซสชัน |
---|---|---|
ฟีด R (CRAN) | ไม่ได้รับการสนับสนุน | สนับสนุน |
R แบบกําหนดเอง | สนับสนุน | สนับสนุน |
ข้อกําหนดเบื้องต้น
รับ การสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนสําหรับ Microsoft Fabric รุ่นทดลองใช้ฟรี
ลงชื่อเข้าใช้ Microsoft Fabric
ใช้ตัวสลับประสบการณ์การใช้งานที่ด้านล่างซ้ายของหน้าหลักของคุณเพื่อเปลี่ยนเป็น Fabric
ไลบรารี R ระดับเซสชัน
เมื่อทําการวิเคราะห์ข้อมูลแบบโต้ตอบหรือการเรียนรู้ของเครื่อง คุณอาจลองใช้แพคเกจที่ใหม่กว่าหรือคุณอาจต้องการแพคเกจที่ไม่สามารถใช้งานได้ในพื้นที่ทํางานของคุณในปัจจุบัน แทนที่จะอัปเดตการตั้งค่าพื้นที่ทํางาน คุณสามารถใช้แพคเกจที่มีขอบเขตเซสชันเพื่อเพิ่ม จัดการ และอัปเดตการขึ้นต่อกันของเซสชันได้
- เมื่อคุณติดตั้งไลบรารีที่มีขอบเขตเซสชัน เฉพาะสมุดบันทึกปัจจุบันเท่านั้นที่สามารถเข้าถึงไลบรารีที่ระบุได้
- ไลบรารีเหล่านี้ไม่ส่งผลกระทบต่อเซสชันหรืองานอื่น ๆ โดยใช้พูล Spark เดียวกัน
- ไลบรารีเหล่านี้ได้รับการติดตั้งที่ด้านบนของไลบรารีรันไทม์พื้นฐานและระดับพูล
- ไลบรารีสมุดบันทึกมีความสําคัญสูงสุด
- ไลบรารี R ที่มีขอบเขตเซสชันจะไม่ยังคงอยู่ตลอดเซสชัน ไลบรารีเหล่านี้จะได้รับการติดตั้งที่จุดเริ่มต้นของแต่ละเซสชันเมื่อมีการดําเนินการคําสั่งการติดตั้งที่เกี่ยวข้อง
- ไลบรารี R ที่มีขอบเขตเซสชันจะถูกติดตั้งโดยอัตโนมัติทั่วทั้งโหนดโปรแกรมควบคุมและผู้ปฏิบัติงาน
โน้ต
คําสั่งของการจัดการไลบรารี R จะถูกปิดใช้งานเมื่อเรียกใช้งานไปป์ไลน์ ถ้าคุณต้องการติดตั้งแพคเกจภายในไปป์ไลน์ คุณต้องใช้ความสามารถในการจัดการไลบรารีในระดับพื้นที่ทํางาน
ติดตั้งแพคเกจ R จาก CRAN
คุณสามารถติดตั้งไลบรารี R ได้อย่างง่ายดายจาก CRAN
# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
คุณยังสามารถใช้สแนปช็อต CRAN เป็นที่เก็บเพื่อให้แน่ใจว่าได้ดาวน์โหลดเวอร์ชันแพคเกจเดียวกันในแต่ละครั้ง
# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
ติดตั้งแพคเกจ R โดยใช้ devtools
ไลบรารี devtools
ช่วยลดความซับซ้อนของการพัฒนาแพคเกจเพื่อเร่งงานทั่วไป ไลบรารีนี้ได้รับการติดตั้งภายในรันไทม์ Microsoft Fabric ค่าเริ่มต้น
คุณสามารถใช้ devtools
เพื่อระบุรุ่นเฉพาะของไลบรารีเพื่อติดตั้งได้ ไลบรารีเหล่านี้จะได้รับการติดตั้งในโหนดทั้งหมดภายในคลัสเตอร์
# Install a specific version.
install_version("caesar", version = "1.0.0")
ในทํานองเดียวกัน คุณสามารถติดตั้งไลบรารีได้โดยตรงจาก GitHub
# Install a GitHub library.
install_github("jtilly/matchingR")
ในขณะนี้ ฟังก์ชัน devtools
ต่อไปนี้ได้รับการสนับสนุนภายใน Microsoft Fabric:
สั่ง | คำอธิบาย |
---|---|
install_github() | ติดตั้งแพคเกจ R จาก GitHub |
install_gitlab() | ติดตั้งแพคเกจ R จาก GitLab |
install_bitbucket() | ติดตั้งแพคเกจ R จาก BitBucket |
install_url() | ติดตั้งแพคเกจ R จาก URL แบบอําเภอใจ |
install_git() | ติดตั้งจากที่เก็บ git แบบกําหนด |
install_local() | ติดตั้งจากไฟล์ภายในเครื่องบนดิสก์ |
install_version() | ติดตั้งจากเวอร์ชันเฉพาะบน CRAN |
ติดตั้งไลบรารี R แบบกําหนดเอง
หากต้องการใช้ไลบรารีแบบกําหนดเองระดับเซสชัน ก่อนอื่นคุณต้องอัปโหลดไปยัง Lakehouse ที่แนบมา
เปิดสมุดบันทึกที่คุณต้องการใช้ไลบรารีแบบกําหนดเอง
ทางด้านซ้าย เลือก เพิ่ม เพื่อเพิ่มเลคเฮ้าส์ที่มีอยู่แล้ว หรือสร้างเลคเฮ้าส์
คลิกขวาหรือเลือก "..." ถัดจาก ไฟล์ เพื่ออัปโหลดไฟล์ .tar.gz ของคุณ
หลังจากอัปโหลดแล้ว ให้กลับไปยังสมุดบันทึกของคุณ ใช้คําสั่งต่อไปนี้เพื่อติดตั้งไลบรารีแบบกําหนดเองลงในเซสชันของคุณ:
install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
ดูไลบรารีที่ติดตั้งไว้
คิวรีไลบรารีทั้งหมดที่ติดตั้งภายในเซสชันของคุณโดยใช้คําสั่ง library
# query all the libraries installed in current session
library()
ใช้ฟังก์ชัน packageVersion
เพื่อตรวจสอบเวอร์ชันของไลบรารี:
# check the package version
packageVersion("caesar")
ลบแพคเกจ R ออกจากเซสชัน
คุณสามารถใช้ฟังก์ชัน detach
เพื่อลบไลบรารีออกจาก namespace ได้ ไลบรารีเหล่านี้จะยังคงอยู่บนดิสก์จนกว่าจะถูกโหลดอีกครั้ง
# detach a library
detach("package: caesar")
เมื่อต้องการเอาแพคเกจที่มีขอบเขตเซสชันออกจากสมุดบันทึก ให้ใช้คําสั่ง remove.packages()
การเปลี่ยนแปลงไลบรารีนี้ไม่มีผลกระทบต่อเซสชันอื่น ๆ บนคลัสเตอร์เดียวกัน ผู้ใช้ไม่สามารถถอนการติดตั้งหรือลบไลบรารีที่มีอยู่ภายในของรันไทม์ Microsoft Fabric เริ่มต้นได้
โน้ต
คุณไม่สามารถลบแพคเกจหลัก เช่น SparkR, SparklyR หรือ R ได้
remove.packages("caesar")
ไลบรารี R ที่มีขอบเขตเซสชันและ SparkR
ไลบรารีแบบกําหนดขอบเขตสมุดบันทึกพร้อมใช้งานบนผู้ปฏิบัติงาน SparkR
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
ไลบรารี R ที่มีขอบเขตเซสชันและ sparklyr
ด้วย spark_apply()
ใน sparklyr คุณสามารถใช้แพคเกจ R ใด ๆ ภายใน Spark ได้ ตามค่าเริ่มต้น ใน sparklyr::spark_apply()
อาร์กิวเมนต์แพคเกจจะตั้งค่าเป็น FALSE ซึ่งจะคัดลอกไลบรารีใน libPaths ปัจจุบันไปยังผู้ปฏิบัติงาน ช่วยให้คุณสามารถนําเข้าและใช้กับผู้ปฏิบัติงาน ตัวอย่างเช่น คุณสามารถเรียกใช้รายการต่อไปนี้เพื่อสร้างข้อความที่เข้ารหัสลับแบบ caesar ด้วย sparklyr::spark_apply()
:
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
เนื้อหาที่เกี่ยวข้อง
เรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันการทํางานของ R: