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

ลดขนาดข้อมูลด้วยการสุ่มตัวอย่าง

เมื่อต้องทำงานกับชุดข้อมูลขนาดใหญ่ ไม่จำเป็นต้องใช้ข้อมูลทั้งหมดในทุกครั้ง โดยเฉพาะในช่วงเริ่มต้นของโปรเจกต์ที่ยังอยู่ระหว่างการทดลองแนวทางต่าง ๆ การทำงานกับชุดข้อมูลขนาดเล็กกว่าจะช่วยให้วนซ้ำได้เร็วขึ้น sdf_sample() เป็นฟังก์ชันที่ช่วยให้ทำสิ่งนี้ได้อย่างสะดวก โดยรับ tibble และสัดส่วนของแถวที่ต้องการดึงมา ในกรณีนี้จะสุ่มตัวอย่างแบบไม่ใส่คืน หากต้องการสุ่มตัวอย่างหนึ่งในสิบของชุดข้อมูล ให้ใช้โค้ดดังนี้

a_tibble %>%
  sdf_sample(fraction = 0.1, replacement = FALSE)

เนื่องจากผลลัพธ์ของการสุ่มเป็นแบบสุ่ม และมักต้องการนำชุดข้อมูลที่ย่อแล้วกลับมาใช้ซ้ำ จึงนิยมใช้ compute() เพื่อบันทึกผลลัพธ์เป็น Spark data frame อีกตัวหนึ่ง

a_tibble %>%
  sdf_sample(<some args>) %>%
  compute("sample_dataset")

หากต้องการให้ผลลัพธ์สามารถทำซ้ำได้ สามารถกำหนด seed ของตัวเลขสุ่มผ่านอาร์กิวเมนต์ seed ได้ ซึ่งจะทำให้ได้ชุดข้อมูลสุ่มชุดเดิมทุกครั้งที่รันโค้ด สามารถใช้ตัวเลขใดก็ได้เป็น seed เพียงเลือกจำนวนเต็มบวกที่ต้องการ

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

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

ดูคอร์ส

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

มีการสร้าง Spark connection ไว้ให้แล้วในชื่อ spark_conn และมีการกำหนด tibble ที่เชื่อมต่อกับ track metadata ที่เก็บอยู่ใน Spark ไว้ล่วงหน้าในชื่อ track_metadata_tbl

  • ใช้ sdf_sample() เพื่อสุ่มตัวอย่าง track metadata 1% แบบไม่ใส่คืน
    • ส่งค่า 20000229 ให้กับอาร์กิวเมนต์ seed เพื่อกำหนด random seed
  • คำนวณผลลัพธ์และบันทึกไว้ในตารางชื่อ "sample_track_metadata"

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

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

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Sample the data without replacement
  ___ %>%
  # Compute the result
  ___
แก้ไขและรันโค้ด