ПочатиПочніть безкоштовно

Пошук поширених послідовностей слів

Раніше ми розглядали, як створити запит, що знаходить послідовності слів довжини три («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()
Редагувати та запускати код