แชร์ผ่าน


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

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

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

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

ไลบรารีมีสองชนิดที่คุณอาจต้องการรวมตามสถานการณ์สมมติของคุณ:

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

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

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

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

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

สรุปลักษณะการทํางานการจัดการไลบรารี R ปัจจุบัน:

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

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

ไลบรารี 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 ที่แนบมา

  1. ทางด้านซ้าย เลือก เพิ่ม เพื่อเพิ่มเลคเฮาส์ที่มีอยู่หรือสร้างเลคเฮ้าส์

    สกรีนช็อตของวิธีการเพิ่มเลคเฮาส์ลงในสมุดบันทึกของคุณ

  2. หากต้องการเพิ่มไฟล์ไปยังเลคเฮ้าส์นี้ ให้เลือกพื้นที่ทํางานของคุณแล้วเลือกเลคเฮ้าส์

    สกรีนช็อตของวิธีการนําทางไปยังเลคเฮาส์ของคุณเพื่อเพิ่มไฟล์

  3. คลิกขวาหรือเลือก "..." ถัดจากไฟล์เพื่ออัปโหลดไฟล์ .tar.gz ของคุณ

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

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

    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: