Вывод частот слов
После объединения значений (счётчиков) с одинаковым ключом (словом) в этом упражнении вы вернёте первые 10 частот слов. Можно было бы получить все элементы сразу с помощью collect(), однако это не рекомендуется: RDD могут быть очень большими, и такой подход может привести к нехватке памяти и аварийному завершению программы.
Что если нам нужны 10 самых частых слов? Для этого сначала нужно поменять местами ключ (слово) и значение (счётчик), чтобы ключом стал счётчик, а значением — слово. Сейчас в result_RDD ключ находится на позиции 0, а значение — на позиции 1. После перестановки элементов кортежа отсортируйте парный RDD по ключу (счётчику). Такой подход удобнее, чем использование операции sortByKey в PySpark. В завершение вы вернёте 10 наиболее часто встречающихся слов из отсортированного RDD.
В вашем рабочем пространстве уже доступны SparkContext sc и resultRDD.
Это упражнение является частью курса
Основы Big Data с PySpark
Инструкции к упражнению
- Выведите первые 10 слов и их частоты из RDD
resultRDD. - Поменяйте местами ключи и значения в
resultRDD. - Отсортируйте ключи в порядке убывания.
- Выведите 10 наиболее частых слов и их частоты из отсортированного RDD.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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]))