開始使用免費開始

印出單字出現頻率

把相同鍵(單字)的值(計數)合併之後,這個練習要你回傳前 10 個單字的出現頻率。你也可以用 collect() 一次取回所有元素,但這是不良做法且不建議。RDD 可能非常大:你可能會耗盡記憶體,導致電腦當機。

如果我們想回傳前 10 個單字呢?為此,你需要先把鍵(單字)和值(計數)對調,讓鍵是計數、值是單字。現在 result_RDD 的「鍵是第 0 個元素、值是第 1 個元素」。在你把 tuple 裡的鍵和值交換之後,接著要依鍵(計數)對成對 RDD 進行排序。如此一來,就能直接依鍵排序 RDD,而不必在 PySpark 使用 sortByKey。最後,從排序後的 RDD 依出現頻率回傳前 10 個單字。

你的工作空間中已提供 SparkContext scresultRDD

本練習屬於課程

使用 PySpark 的 Big Data 基礎

檢視課程

練習說明

  • resultRDD RDD 印出前 10 個單字及其出現頻率。
  • resultRDD 中的鍵和值對調。
  • 依鍵做遞減排序。
  • 從排序後的 RDD 印出前 10 個最常見的單字及其出現頻率。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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]))
編輯並執行程式碼