开始使用免费开始使用

打印词频

在将相同键(单词)的值(计数)合并之后,本练习将返回前 10 个单词的词频。您本可以使用 collect() 一次性取回所有元素,但这不是好做法且不推荐。RDD 可能非常大:您可能会耗尽内存并导致计算机崩溃。

如果我们想返回前 10 个高频单词怎么办?为此,您需要先交换键(单词)和值(计数),使键为计数、值为单词。当前 result_RDD 的"键是元素 0、值是元素 1"。在元组中交换键和值后,您将基于键(计数)对成对 RDD 排序。这样更容易按照键对 RDD 排序,而不必在 PySpark 中使用 sortByKey 操作。最后,您将从已排序的 RDD 中返回基于词频的前 10 个单词。

您的工作区中已提供 SparkContext scresultRDD

本练习是课程的一部分

使用 PySpark 的大数据基础

查看课程

练习说明

  • 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]))
编辑并运行代码