ComeçarComece de graça

Criando dados de atributos com janela de contexto

A técnica de janela deslizante é útil para modelos de Machine Learning que usam dados de atributos de janela de contexto.

Uma tabela text com as colunas id, word, part, title está disponível no seu ambiente. Ela contém os capítulos 9, 10, 11 e 12 do livro Sherlock Holmes. As palavras já foram processadas e organizadas em uma palavra por linha. Cada palavra tem um índice inteiro exclusivo fornecido pela coluna id. A coluna id é menor para palavras que aparecem mais cedo no texto e maior para palavras que aparecem mais tarde.

As primeiras 10 linhas do conjunto de dados do capítulo 12 são exibidas no console como Table1. As dez primeiras linhas do resultado desejado, limitadas a mostrar a parte 12 (Capítulo 12), são exibidas no console como Table2. Em Table2, a palavra “dada” da linha é fornecida na coluna w3. As colunas w1 e w2 trazem as duas palavras imediatamente anteriores à palavra dada. As colunas w4 e w5 trazem as duas palavras imediatamente posteriores à palavra dada.

Perceba que w1 e w2 são null na primeira linha. Isso acontece porque não há palavras anteriores a w3 (aqui, "xii") que estejam dentro da parte 12.

Se precisar relembrar algo mostrado no vídeo, consulte os slides disponíveis à direita do console.

Este exercício faz parte do curso

Introdução ao Spark SQL em Python

Ver curso

Instruções do exercício

  • Obtenha a palavra de cada linha, junto com as duas palavras anteriores e as duas palavras posteriores.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Word for each row, previous two and subsequent two words
query = """
SELECT
part,
LAG(word, 2) OVER(PARTITION BY ____ ORDER BY ____) AS w1,
LAG(word, ____) OVER(____ BY part ____ BY id) AS w2,
word AS w3,
____(word, 1) OVER(____ BY part ____ BY id) AS w4,
LEAD(word, 2) OVER(____ BY part ____ BY id) AS w5
FROM text
"""
spark.sql(query).where("part = 12").show(10)
Editar e executar o código