Виведіть частоти слів
Після об'єднання значень (кількостей) з однаковим ключем (словом) у цій вправі ви повернете перші 10 частот слів. Можна було б отримати всі елементи одразу за допомогою collect(), але це погана практика й не рекомендується. RDD можуть бути величезними: ви можете вичерпати пам'ять і зруйнувати роботу комп'ютера.
А що, якщо ми хочемо повернути топ-10 слів? Для цього спочатку потрібно поміняти місцями ключ (слово) і значення (кількість), щоб ключем стала кількість, а значенням — слово. Зараз у result_RDD ключ — елемент 0, а значення — елемент 1. Після того як ви поміняєте ключ і значення місцями у кортежі, відсортуйте парний RDD за ключем (кількістю). Так легше впорядкувати RDD за ключем, ніж використовувати операцію sortByKey у PySpark. Нарешті, поверніть перші 10 слів за їхньою частотою з відсортованого RDD.
У вашому робочому середовищі вже доступні SparkContext sc і resultRDD.
Ця вправа є частиною курсу
Основи Big Data з PySpark
Інструкції до вправи
- Виведіть перші 10 слів і їхні частоти з
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]))