เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ข้อมูลขนาดใหญ่ tibble ขนาดเล็ก

ในแบบฝึกหัดที่แล้ว เมื่อคัดลอกข้อมูลไปยัง Spark ฟังก์ชัน copy_to() จะคืนค่ากลับมาค่าหนึ่ง ค่าที่คืนกลับมานี้คือ tibble() ชนิดพิเศษที่ไม่ได้เก็บข้อมูลไว้ในตัวเอง เพื่อให้เข้าใจสิ่งนี้ จำเป็นต้องรู้เล็กน้อยเกี่ยวกับวิธีที่ tidyverse เก็บข้อมูล โดยปกติแล้ว Tibble เป็นเพียงตัวแปรแบบ data.frame ที่มีรูปแบบการแสดงผลที่ดีกว่า อย่างไรก็ตาม dplyr ยังอนุญาตให้ tibble เก็บข้อมูลจากแหล่งข้อมูลระยะไกลได้ด้วย เช่น ฐานข้อมูล และ Spark ดังที่เห็นในกรณีนี้ สำหรับชุดข้อมูลระยะไกล ออบเจกต์ tibble จะเก็บเพียงการเชื่อมต่อไปยังข้อมูลต้นทาง เรื่องนี้จะอธิบายในรายละเอียดภายหลัง แต่สิ่งสำคัญในขณะนี้คือ แม้จะมีชุดข้อมูลขนาดใหญ่ ออบเจกต์ tibble เองก็มีขนาดเล็กมาก

ในฝั่ง Spark ข้อมูลจะถูกเก็บในตัวแปรที่เรียกว่า DataFrame ซึ่งเทียบได้กับตัวแปรประเภท data.frame ของ R (แม้ว่าชนิดของคอลัมน์จะมีชื่อต่างออกไปเล็กน้อย เช่น คอลัมน์ประเภท numeric จะถูกเรียกว่า DoubleType) ตลอดทั้งคอร์สนี้จะใช้คำว่า data frame เว้นแต่จำเป็นต้องแยกแยะระหว่าง data.frame กับ DataFrame และเนื่องจากประเภทข้อมูลเหล่านี้มีลักษณะคล้ายกับตารางในฐานข้อมูล บางครั้งจะใช้คำว่า table เพื่ออธิบายข้อมูลในรูปแบบตารางสี่เหลี่ยมนี้ด้วย

การเรียก tbl() โดยส่ง Spark connection พร้อมกับชื่อ Spark data frame จะคืนออบเจกต์ tibble เดิมกลับมา เช่นเดียวกับที่ copy_to() คืนค่ากลับมา

เครื่องมือที่มีประโยชน์อีกอย่างในแบบฝึกหัดนี้คือฟังก์ชัน object_size() จากแพ็กเกจ pryr ซึ่งใช้ตรวจสอบว่าออบเจกต์ใช้หน่วยความจำเท่าใด

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

แนะนำ Spark ด้วย sparklyr ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

ได้สร้าง Spark connection ไว้ให้แล้วในชื่อ spark_conn และเมทาดาตาของเพลง 1,000 เพลงถูกเก็บไว้ใน Spark cluster ในตาราง "track_metadata"

  • เชื่อมโยงไปยังตาราง "track_metadata" โดยใช้ tbl() แล้วกำหนดผลลัพธ์ให้กับ track_metadata_tbl
  • ตรวจสอบขนาดของชุดข้อมูลโดยใช้ dim() กับ track_metadata_tbl
  • ตรวจสอบว่า tibble มีขนาดเล็กเพียงใด โดยใช้ object_size() กับ track_metadata_tbl

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")

# See how big the dataset is
___(___)

# See how small the tibble is
___(___)
แก้ไขและรันโค้ด