Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Reclamação] Código usado na celular 6, não funciona e nem a ginie consegue corrigir.

Claramente a instrutora não passa segurança quanto ao conhecimento do conteúdo.
Faço cursos da alura faz tempo e quero deixar registrado que há uma diferença gritante no que diz respeito a segurança do que está sendo passado.

Alguns códigos passados pela intrustura não funcionam. Digitei, copiei e colei os códigos e também limpei os outputs das células e rodei de novo.
A ginie está ajudando mas modificando bastante alguns códigos que não estão funcionando como por exemplo da célula 6.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

df_safe.select(
"user_id",
"movie_id",
"watch_time_minutes",
"playback_status"
).display()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Angelo! Tudo bem?

Isso pode estar ligado à conversão de tipos de dados. O erro de conversão inválida acontece quando o Spark tenta tratar valores com ponto decimal como números inteiros ou quando a coluna original ainda é do tipo texto no momento da divisão por 60.

Para resolver, verifique dois pontos importantes no seu código:

Primeiro, em vez de usar a conversão padrão, utilize a função try_cast para transformar a coluna watch_time_minutes em double. A função try_cast é útil porque ela converte os valores válidos e transforma qualquer texto incompatível em nulo, evitando que a execução seja interrompida por erro de sintaxe.

Segundo, garanta que a coluna watch_time_minutes já esteja convertida para double antes de realizar a divisão por 60 para criar a nova coluna de horas. Se a divisão for feita diretamente sobre uma coluna do tipo texto, o Spark tentará fazer uma conversão implícita para inteiros e falhará ao encontrar números decimais.

Faça esse teste ajustando a conversão da coluna com a função try_cast para o tipo double e rodando a célula novamente. E retorne para dizer se deu certinho. E agradeço por compartilhar o seu depoimento, encaminharei para a equipe responsável para terem acesso também.

Bons estudos e até mais!