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

การกรองแถวข้อมูล

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

a_tibble %>%
  filter(x > 0, y == z)

ก่อนลองทำแบบฝึกหัด ขอให้ระวังสองประเด็นสำคัญ ประการแรก อย่าสับสนระหว่างฟังก์ชัน filter() ของ dplyr กับฟังก์ชัน filter() ของแพ็กเกจ stats ประการที่สอง sparklyr จะแปลงโค้ด dplyr ของคุณเป็นโค้ด SQL ก่อนส่งไปยัง Spark ซึ่งหมายความว่ามีเพียงบางประเภทของการกรองเท่านั้นที่รองรับในขณะนี้ ตัวอย่างเช่น ไม่สามารถกรองแถวข้อความด้วย regular expression แบบนี้ได้

a_tibble %>%
  filter(grepl("a regex", x))

หน้าช่วยเหลือของ translate_sql() อธิบายฟังก์ชันที่รองรับไว้อย่างครบถ้วน สามารถใช้ ตัวดำเนินการเปรียบเทียบ เช่น >, != และ %in% รวมถึง ตัวดำเนินการทางคณิตศาสตร์ เช่น +, ^ และ %% และ ตัวดำเนินการทางตรรกะ เช่น &, | และ ! ฟังก์ชันทางคณิตศาสตร์หลายตัวก็รองรับเช่นกัน เช่น log(), abs(), round() และ sin()

เช่นเดิม การอ้างอิงด้วย square bracket ยังไม่รองรับในขณะนี้

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

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

ดูคอร์ส

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

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

  • เช่นเดียวกับแบบฝึกหัดก่อนหน้า ให้เลือกคอลัมน์ artist_name, release, title และ year โดยใช้ select()
  • จากนั้น pipe ผลลัพธ์ที่ได้ไปยัง filter() เพื่อดึงแทร็กในยุค 1960

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

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

# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)

# Manipulate the track metadata
track_metadata_tbl %>%
  # Select columns
  ___ %>%
  # Filter rows
  ___
แก้ไขและรันโค้ด