Пошук поширених послідовностей слів
Раніше ми розглядали, як створити запит, що знаходить послідовності слів довжини три («3-кортежі»). Ми використали цей запит як підзапит у традиційному SQL-запиті, щоб знайти найпоширеніші 3-кортежі в текстовому документі. Тепер ви виконаєте подібне завдання, щоб знайти найпоширеніші 5-кортежі.
Доступний датафрейм text_df. Він містить перші п'ять розділів тексту про Шерлока Голмса. Має стовпці: word, id, part, title. Стовпець id — це ціле число: слово, що з'являється пізніше в документі, має більший id, ніж слово, що йде раніше. Стовпець part розділяє дані на розділи. Датафрейм 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()