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

ศิลปินยอดนิยม

ฟังก์ชัน distinct() ช่วยให้เห็นค่าที่ไม่ซ้ำกัน แต่บางครั้งก็อยากรู้ด้วยว่าแต่ละค่ามีจำนวน เท่าไร ฟังก์ชันพื้นฐานของ R สำหรับงานนี้คือ table() แต่ sparklyr ไม่รองรับฟังก์ชันนี้ เนื่องจากไม่สอดคล้องกับแนวทางของ tidyverse ที่เก็บข้อมูลทุกอย่างไว้ใน tibble แทนที่จะใช้ table() ให้ใช้ count() แทน โดยส่งชื่อคอลัมน์แบบไม่ต้องใส่เครื่องหมายคำพูด ตัวอย่างเช่น หากต้องการนับจำนวนของชุดค่าผสมที่ไม่ซ้ำกันของคอลัมน์ x, y และ z ให้พิมพ์ดังนี้

a_tibble %>%
  count(x, y, z)

ผลลัพธ์จะคล้ายกับ

a_tibble %>%
  distinct(x, y, z)

… แต่จะมีคอลัมน์เพิ่มขึ้นมาหนึ่งคอลัมน์ คือ n ซึ่งเก็บจำนวนนับไว้

การใช้งาน count() ที่มีประโยชน์มากคือการหาค่าที่พบบ่อยที่สุด โดยเรียกใช้ count() พร้อมอาร์กิวเมนต์ sort = TRUE ซึ่งจะเรียงแถวตามค่าในคอลัมน์ n จากมากไปน้อย จากนั้นใช้ slice_max() เพื่อจำกัดผลลัพธ์ให้เหลือเฉพาะอันดับต้น ๆ ตามจำนวนที่ต้องการ (slice_max() ทำงานคล้ายกับ head() ของ R พื้นฐาน แต่รองรับชุดข้อมูลระยะไกล เช่น ข้อมูลใน Spark) ตัวอย่างเช่น หากต้องการดู 20 อันดับแรกของชุดค่าผสมที่พบบ่อยที่สุดของคอลัมน์ x, y และ z ให้ใช้คำสั่งต่อไปนี้

a_tibble %>%
  count(x, y, z, sort = TRUE) %>%
  slice_max(20)

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

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

ดูคอร์ส

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

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

  • นับค่าในคอลัมน์ artist_name จาก track_metadata_tbl
    • ส่ง sort = TRUE เพื่อเรียงแถวตามความนิยมจากมากไปน้อย
  • จำกัดผลลัพธ์ให้เหลือเพียง 20 อันดับแรกโดยใช้ slice_max()

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

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

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Count the artist_name values
  ___ %>%
  # Restrict to top 20
  ___
แก้ไขและรันโค้ด