Поиск распространённых последовательностей слов
Ранее мы научились составлять запрос, который находит последовательности слов длиной три элемента («3-кортежи»). Затем мы использовали этот запрос как подзапрос в обычном SQL-запросе, чтобы найти наиболее частые 3-кортежи в текстовом документе. Теперь вам предстоит решить похожую задачу — найти наиболее частые 5-кортежи.
Доступен DataFrame text_df, который содержит первые пять глав текста о Шерлоке Холмсе. Он включает столбцы: word, id, part, title. Столбец id — целое число: чем позже слово встречается в документе, тем больше его значение. Столбец part разделяет данные по главам. DataFrame text_df также зарегистрирован как временная таблица с именем text. Цель — создать набор данных, в котором каждая строка соответствует одному 5-кортежу и содержит столбец count с количеством вхождений этого кортежа в документ.
Это упражнение является частью курса
Введение в Spark SQL на Python
Инструкции к упражнению
- Создайте запрос
query, который находит 10 наиболее частых 5-кортежей в наборе данных.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Find the top 10 sequences of five words
query = """
SELECT w1, w2, w3, w4, w5, COUNT(*) AS count FROM (
SELECT word AS w1,
LEAD(____) OVER(____ ) AS w2,
____ AS w3,
____ AS w4,
____ AS w5
FROM text
)
GROUP BY w1, w2, w3, w4, w5
ORDER BY count DESC, w1, w2, w3, w4, w5
LIMIT ____
"""
df = spark.sql(query)
df.show()