Encontrar secuencias de palabras comunes
Antes vimos cómo crear una consulta que encuentra secuencias de palabras de longitud tres ("3-tuples"). Usamos esa consulta como subconsulta en una consulta SQL tradicional para encontrar los 3-tuples más comunes en el documento de texto. Ahora realizarás una tarea similar para encontrar los 5-tuples más comunes.
El DataFrame text_df está disponible. Contiene los cinco primeros capítulos del texto de Sherlock Holmes. Tiene las columnas: word, id, part, title. La columna id es un entero tal que una palabra que aparece más tarde en el documento tiene un id mayor que una palabra que aparece antes. La columna part separa los datos por capítulos. El DataFrame text_df también está registrado como una tabla temporal llamada text. Nuestro objetivo es crear un conjunto de datos donde cada fila corresponda a un 5-tuple, con un count que indique cuántas veces aparece la tupla en el conjunto de datos.
Este ejercicio forma parte del curso
Introducción a Spark SQL en Python
Instrucciones del ejercicio
- Crea una consulta
queryque encuentre los 10 5-tuples más comunes del conjunto de datos.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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
LIMIT ____
"""
df = spark.sql(query)
df.show()