Bắt đầu ngayBắt đầu miễn phí

In ra tần suất xuất hiện của từ

Sau khi gộp các giá trị (số lần xuất hiện) có cùng khóa (từ), trong bài này bạn sẽ trả về 10 tần suất từ đầu tiên. Bạn có thể lấy toàn bộ phần tử cùng lúc bằng collect(), nhưng đó là thực hành không tốt và không được khuyến nghị. RDD có thể rất lớn: bạn có thể hết bộ nhớ và làm treo máy tính.

Nếu muốn lấy top 10 từ thì sao? Để làm được, trước tiên bạn cần hoán đổi khóa (từ) và giá trị (số lần) để khóa là số đếm và giá trị là từ. Hiện tại, result_RDDkhóa ở phần tử 0 và giá trị ở phần tử 1. Sau khi bạn hoán đổi khóa và giá trị trong tuple, bạn sẽ sắp xếp paired RDD dựa trên khóa (số đếm). Cách này giúp sắp xếp RDD theo khóa dễ hơn thay vì dùng thao tác sortByKey trong PySpark. Cuối cùng, bạn sẽ trả về 10 từ đứng đầu theo tần suất từ RDD đã sắp xếp.

Bạn đã có sẵn SparkContext scresultRDD trong không gian làm việc.

Bài tập này là một phần của khóa học

Nền tảng Big Data với PySpark

Xem khóa học

Hướng dẫn bài tập

  • In 10 từ đầu tiên và tần suất của chúng từ RDD resultRDD.
  • Hoán đổi khóa và giá trị trong resultRDD.
  • Sắp xếp các khóa theo thứ tự giảm dần.
  • In 10 từ xuất hiện nhiều nhất và tần suất của chúng từ RDD đã sắp xếp.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Display the first 10 words and their frequencies from the input RDD
for word in resultRDD.____(10):
	print(word)

# Swap the keys and values from the input RDD
resultRDD_swap = resultRDD.____(lambda x: (x[1], x[____]))

# Sort the keys in descending order
resultRDD_swap_sort = resultRDD_swap.____(ascending=False)

# Show the top 10 most frequent words and their frequencies from the sorted RDD
for word in resultRDD_swap_sort.____(____):
	print("{},{}". format(____, word[0]))
Chỉnh sửa và Chạy Mã