As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Modelos de PySpark análise de solução de problemas
Ao executar trabalhos usando modelos de PySpark análise, você pode encontrar falhas durante a inicialização ou execução do trabalho. Essas falhas geralmente estão relacionadas à configuração do script, às permissões de acesso aos dados ou à configuração do ambiente.
Para obter mais informações sobre PySpark limitações, consultePySpark limitações em AWS Clean Rooms.
Tópicos
Solucionando problemas com seu código
Para ajudá-lo a desenvolver e solucionar problemas com seu código, sugerimos que você faça sua própria simulação AWS Clean Rooms Conta da AWS ativando mensagens de erro detalhadas e executando trabalhos usando seus próprios dados de teste.
Você também pode simular PySpark AWS Clean Rooms no Amazon EMR Serverless com as seguintes etapas. Ele terá pequenas diferenças com PySpark o AWS Clean Rooms, mas abordará principalmente como seu código pode ser executado.
Para simular PySpark AWS Clean Rooms no EMR Serverless
-
Crie um conjunto de dados no Amazon S3, catalogue-o no e configure AWS Glue Data Catalog as permissões do Lake Formation.
-
Registre a localização do S3 no Lake Formation usando uma função personalizada.
-
Crie uma instância do Amazon EMR Studio se você ainda não tiver uma (o Amazon EMR Studio é necessário para usar o Amazon EMR Serverless).
-
Crie um aplicativo EMR Serverless
-
Selecione a versão de lançamento emr-7.7.0.
-
Selecione a ARM64 arquitetura.
-
Opte por Usar configurações personalizadas.
-
Desative a capacidade pré-inicializada.
-
Se você planeja fazer um trabalho interativo, selecione Endpoint interativo > Habilitar endpoint para o EMR Studio.
-
Selecione Configurações adicionais > Usar Lake Formation para um controle de acesso refinado.
-
Criar o aplicativo.
-
-
Use o EMR-S por meio de notebooks EMR-Studio ou da API.
StartJobRun
O trabalho do modelo de análise não começa
Causas comuns
As tarefas do modelo de análise podem falhar imediatamente na inicialização devido a três problemas principais de configuração:
-
Nomenclatura incorreta do script que não corresponde ao formato exigido
-
Função de ponto de entrada ausente ou formatada incorretamente no script do usuário
-
Versão incompatível do Python no ambiente virtual
Resolução
Para resolver:
-
Verifique seu script de usuário:
-
Verifique se seu script de usuário tem um nome de arquivo Python válido.
Os nomes de arquivo Python válidos usam letras minúsculas, sublinhados para separar palavras e a extensão.py.
-
-
Verifique a função do ponto de entrada. Se seu script de usuário não tiver uma função de ponto de entrada, adicione uma.
-
Abra seu script de usuário.
-
Adicione esta função de ponto de entrada:
def entrypoint(context): # Your analysis code here
-
Verifique se o nome da função está escrito exatamente como.
entrypoint
-
Verifique se a função aceita o
context
parâmetro.
-
-
Verifique a compatibilidade da versão do Python:
-
Verifique se seu ambiente virtual usa Python 3.9.
-
Para verificar sua versão, execute:
python --version
-
Se necessário, atualize seu ambiente virtual:
conda create -n analysis-env python=3.9 conda activate analysis-env
-
Prevenção
-
Use o código inicial do modelo de análise fornecido que inclui a estrutura de arquivo correta.
-
Configure um ambiente virtual dedicado com o Python 3.9 para todos os modelos de análise.
-
Teste seu modelo de análise localmente usando a ferramenta de validação de modelos antes de enviar trabalhos.
-
Implemente CI/CD verificações para verificar a nomenclatura do script e os requisitos da função do ponto de entrada.
O trabalho do modelo de análise é iniciado, mas falha durante o processamento
Causas comuns
Os trabalhos de análise podem falhar durante a execução por esses motivos de segurança e formatação:
-
Tentativas não autorizadas de acesso direto a AWS serviços como Amazon S3 ou AWS Glue
-
Retornando a saída em formatos incorretos que não correspondem às DataFrame especificações exigidas
-
Chamadas de rede bloqueadas devido a restrições de segurança no ambiente de execução
Resolução
Para resolver
-
Remova o acesso direto ao AWS serviço:
-
Pesquise seu código para importações e chamadas diretas de AWS serviços.
-
Substitua o acesso direto ao S3 pelos métodos de sessão do Spark fornecidos.
-
Use somente tabelas pré-configuradas por meio da interface de colaboração.
-
-
Formate as saídas corretamente:
-
Verifique se todas as saídas são DataFrames Spark.
-
Atualize sua declaração de devolução para que corresponda ao seguinte formato:
return { "results": { "output1": dataframe1 } }
-
Remova quaisquer objetos que não DataFrame sejam devolvidos.
-
-
Remova as chamadas de rede:
-
Identifique e remova todas as chamadas externas de API.
-
Remova qualquer urllib, solicitações ou bibliotecas de rede similares.
-
Remova qualquer conexão de soquete ou código de cliente HTTP.
-
Prevenção
-
Use o linter de código fornecido para verificar se há AWS importações não autorizadas e chamadas de rede.
-
Testes trabalhos no ambiente de desenvolvimento em que as restrições de segurança coincidem com a produção.
-
Siga o processo de validação do esquema de saída antes de implantar trabalhos.
-
Revise as diretrizes de segurança para obter padrões de acesso ao serviço aprovados.
Falha na configuração do ambiente virtual
Causas comuns
Falhas na configuração do ambiente virtual geralmente ocorrem devido a:
-
Arquitetura de CPU incompatível entre ambientes de desenvolvimento e execução
-
Problemas de formatação de código Python que impedem a inicialização adequada do ambiente
-
Configuração incorreta da imagem base nas configurações do contêiner
Resolução
Para resolver
-
Configure a arquitetura correta:
-
Verifique sua arquitetura atual com
uname -m.
-
Atualize seu Dockerfile para especificar: ARM64
FROM --platform=linux/arm64 public.ecr.aws/amazonlinux/amazonlinux:2023-minimal
-
Reconstrua seu contêiner com
docker build --platform=linux/arm64.
-
-
Corrija o recuo do Python:
-
Execute um formatador de código Python como
black
em seus arquivos de código. -
Verifique o uso consistente de espaços ou tabulações (não de ambos).
-
Verifique o recuo de todos os blocos de código:
def my_function(): if condition: do_something() return result
-
Use um IDE com destaque de recuo em Python.
-
-
Valide a configuração do ambiente:
-
Execute
python -m py_compile your_script.py
para verificar se há erros de sintaxe. -
Teste o ambiente localmente antes da implantação.
-
Verifique se todas as dependências estão listadas em
requirements.txt
.
-
Prevenção
-
Use o Visual Studio Code ou PyCharm com plug-ins de formatação Python
-
Configure ganchos de pré-confirmação para executar formatadores de código automaticamente
-
Crie e teste ambientes localmente usando a imagem ARM64 base fornecida
-
Implemente a verificação automatizada de estilo de código em seu CI/CD pipeline