การจัดการไลบรารี R

ไลบรารีมีโค้ดที่นํากลับมาใช้ใหม่ได้ซึ่งคุณอาจต้องการรวมไว้ในโปรแกรมหรือโครงการของคุณสําหรับ Microsoft Fabric Spark

Microsoft Fabric รองรับรันไทม์ R พร้อมแพ็คเกจ R โอเพ่นซอร์สยอดนิยมมากมาย รวมถึง TidyVerse ที่ติดตั้งไว้ล่วงหน้า เมื่อเริ่มมีอินสแตนซ์ Spark ไลบรารีเหล่านี้จะรวมโดยอัตโนมัติและพร้อมใช้งานในสมุดบันทึกหรือข้อกําหนดงาน Spark ทันที

คุณอาจจําเป็นต้องอัปเดตไลบรารี R ของคุณด้วยเหตุผลหลายประการ ตัวอย่างเช่น หนึ่งในการขึ้นต่อกันหลักของคุณที่มีการเผยแพร่เวอร์ชันใหม่ หรือทีมของคุณได้สร้างแพคเกจแบบกําหนดเองที่คุณต้องการพร้อมใช้งานในคลัสเตอร์ Spark ของคุณ

ไลบรารีสองชนิดอาจเหมาะกับสถานการณ์ของคุณ:

  • ไลบรารีฟีด หมายถึงไลบรารีที่อยู่ในแหล่งข้อมูลสาธารณะหรือที่เก็บ เช่น CRAN หรือ GitHub

  • ไลบรารีแบบกําหนดเอง เป็นโค้ดที่คุณหรือองค์กรของคุณสร้างขึ้น .tar.gz สามารถจัดการได้ผ่านพอร์ทัลการจัดการไลบรารี

มีแพคเกจสองระดับที่ติดตั้งบน Microsoft Fabric:

  • สภาพแวดล้อม : จัดการไลบรารีผ่านสภาพแวดล้อม เพื่อใช้ไลบรารีชุดเดียวกันในสมุดบันทึกหรืองานหลายรายการซ้ํา

  • เซสชัน : การติดตั้งระดับเซสชันจะสร้างสภาพแวดล้อมสําหรับเซสชันสมุดบันทึกเฉพาะ การเปลี่ยนแปลงไลบรารีระดับเซสชันจะไม่ยังคงอยู่ระหว่างเซสชัน

โหมดการเผยแพร่สภาพแวดล้อม (ด่วน vs เต็ม)

เมื่อคุณติดตั้งไลบรารีในสภาพแวดล้อม Fabric คุณเลือกโหมดการเผยแพร่:

  • โหมดด่วน จะเผยแพร่ในเวลาประมาณ 5 วินาที ไลบรารีจะติดตั้งเมื่อเซสชันสมุดบันทึกเริ่มต้นขึ้น โหมดด่วนเหมาะที่สุดสําหรับการทําซ้ําอย่างรวดเร็วระหว่างการพัฒนา
  • โหมดเต็ม จะสร้างสแนปช็อตไลบรารีที่เสถียรและทําซ้ําได้ โดยทั่วไปการเผยแพร่จะใช้เวลา 3 ถึง 6 นาที และการเริ่มต้นเซสชันจะเพิ่ม 1 ถึง 3 นาทีสําหรับการปรับใช้การขึ้นต่อกัน

โหมดเหล่านี้ใช้กับไลบรารี R ระดับสภาพแวดล้อม ไลบรารี R ระดับเซสชันที่คุณติดตั้งผ่านคําสั่งแบบอินไลน์ (เช่น install.packages()) หรือจากโฟลเดอร์ ทรัพยากร เป็นไลบรารีต่อเซสชันและต่อสมุดบันทึก โดยจะไม่ได้รับผลกระทบจากโหมดการประกาศสภาพแวดล้อม สําหรับรายละเอียด โปรดดู จัดการไลบรารีในสภาพแวดล้อม Fabric

ตารางต่อไปนี้สรุปลักษณะการจัดการไลบรารี R ที่พร้อมใช้งานในปัจจุบัน:

ชนิดไลบรารี การติดตั้งสภาพแวดล้อม การติดตั้งระดับเซสชัน
ฟีด R (CRAN) ไม่ได้รับการสนับสนุน สนับสนุน
R แบบกําหนดเอง สนับสนุน สนับสนุน

ข้อกําหนดเบื้องต้น

  • รับการสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนเพื่อทดลองใช้ Microsoft Fabric ฟรี

  • ลงชื่อเข้าใช้ Microsoft Fabric

  • สลับไปยัง Fabric โดยใช้ตัวสลับประสบการณ์ที่ด้านซ้ายล่างของโฮมเพจของคุณ

    สกรีนช็อตที่แสดงการเลือก Fabric บนเมนูตัวสลับประสบการณ์

ไลบรารี R ระดับเซสชัน

เมื่อคุณทําการวิเคราะห์ข้อมูลแบบโต้ตอบหรือ machine learning คุณอาจลองใช้แพ็คเกจที่ใหม่กว่าหรือต้องการแพ็คเกจที่ไม่พร้อมใช้งานในพื้นที่ทํางานของคุณในขณะนี้ แทนที่จะอัปเดตการตั้งค่าพื้นที่ทํางาน ให้ใช้แพคเกจที่มีขอบเขตเซสชันเพื่อเพิ่ม จัดการ และอัปเดตการขึ้นต่อกันของเซสชัน

  • เมื่อคุณติดตั้งไลบรารีที่มีขอบเขตเซสชัน เฉพาะสมุดบันทึกปัจจุบันเท่านั้นที่มีสิทธิ์ access ไปยังไลบรารีที่ระบุ
  • ไลบรารีเหล่านี้ไม่ส่งผลกระทบต่อเซสชันหรืองานอื่นๆ ที่ใช้พูล 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 ที่แนบมาก่อน

  1. เปิดสมุดบันทึกที่คุณต้องการใช้ไลบรารีแบบกําหนดเอง

  2. เพิ่มเลคเฮาส์ลงในสมุดบันทึกของคุณ

  3. เลือกเมนูแบบเลื่อนลงถัดจากเลคเฮาส์ที่คุณเพิ่งเพิ่ม จากนั้นคลิกขวาหรือเลือก "..." ถัดจาก ไฟล์ เพื่ออัปโหลดไฟล์ .tar.gz ของคุณ

    สกรีนช็อตของวิธีการอัปโหลดไฟล์ของคุณไปยังโฟลเดอร์ไฟล์ lakehouse

  4. หลังจากอัปโหลดไฟล์แล้ว ให้ go back ไปยังสมุดบันทึกของคุณ ใช้คําสั่งต่อไปนี้เพื่อติดตั้งไลบรารีแบบกําหนดเองลงในเซสชันของคุณ:

    install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
    

โน้ต

การติดตั้งแบบอินไลน์และวิธีการโฟลเดอร์ทรัพยากรสําหรับไลบรารี R เป็นแบบต่อเซสชันและต่อสมุดบันทึก พวกเขาไม่ได้รับผลกระทบจากโหมดการเผยแพร่สภาพแวดล้อม

ดูไลบรารีที่ติดตั้งไว้

คิวรีไลบรารีทั้งหมดที่ติดตั้งภายในเซสชันของคุณโดยใช้คําสั่ง library

# query all the libraries installed in current session
library()

ใช้ฟังก์ชัน packageVersion เพื่อตรวจสอบเวอร์ชันของไลบรารี:

# check the package version
packageVersion("caesar")

ลบแพคเกจ R ออกจากเซสชัน

ใช้ฟังก์ชันเพื่อ detach เอาไลบรารีออกจากเนมสเปซ ไลบรารีเหล่านี้จะยังคงอยู่บนดิสก์จนกว่าคุณจะโหลดอีกครั้ง

# 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()อาร์กิวเมนต์ถูกpackagesตั้งค่าเป็นFALSE การตั้งค่านี้จะคัดลอกไลบรารีในปัจจุบัน libPaths ไปยังผู้ปฏิบัติงาน เพื่อให้คุณสามารถนําเข้าและใช้ไลบรารีเหล่านั้นกับผู้ปฏิบัติงานได้ ตัวอย่างเช่น คุณสามารถเรียกใช้คําสั่งต่อไปนี้เพื่อสร้างข้อความที่เข้ารหัสซีซาร์โดยใช้ 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: