1
resposta

[Reclamação] ImportError: cannot import name 'SilhouetteEvaluator' from 'pyspark.ml.evaluation' (/databricks/spark/python/pyspark/ml/evaluation.py)

Outro códico que não funciona. Estes cursos de Databricks sãpo cheios de falhas. Paguei para aprender e não para ficar corrigindo código. Não é possível que não há ninguém ai quee revise estas aulas e conserte os códigos!!!! Já procurei a solução, que não deveria ser eu, e não encontra nada para ajustar isso. Estou bem chateado com a ALURA, ainda mais que fechei uma Pos com a FIAP. Estou com medo do nível da POS.

from pyspark.ml.clustering import KMeans
from pyspark.ml.evaluation import SilhouetteEvaluator

Carregando dados de exemplo

from pyspark.ml.linalg import Vectors
from pyspark.sql.functions import rand

data = spark.createDataFrame([(Vectors.dense([0.0, 0.0]),), (Vectors.dense([1.0, 1.0]),),
                              (Vectors.dense([9.0, 8.0]),), (Vectors.dense([8.0, 9.0]),)], ['features']).orderBy(rand())

Criando o modelo K-means

kmeans = KMeans(k=2, seed=1)
model = kmeans.fit(data)

Avaliando a qualidade dos clusters com o SilhouetteEvaluator

evaluator = SilhouetteEvaluator()
silhouette = evaluator.evaluate(model.transform(data))
print(f"Silhouette score: {silhouette}")

ImportError: cannot import name 'SilhouetteEvaluator' from 'pyspark.ml.evaluation' (/databricks/spark/python/pyspark/ml/evaluation.py)

1 resposta

Ei, Claudio! Tudo bem?

Entendo a sua frustração e agradeço por nos trazer esse questionamento, que é bem pertinente. Compartilharei com a equipe responsável para terem conhecimento também. Nós prezamos muito por essa interação, pois sempre nos ajuda a melhorar os conteúdos.

Quanto ao erro, ele nos diz que há um problema de versão do PySpark utilizado, o qual não suporta SilhouetteEvaluator e ClusteringEvaluator. Podemos encontrar essa informação na documentação

Sendo assim, recomendo que verifique qual versão está usando e, depois, atualize-a.

Comando para ver a versão no Colab:

import pyspark
print(pyspark.__version__)

Comando para atualizar no colab:

!pip install --upgrade pyspark

Feito isso, rode o código novamente e observe se funciona como esperado.

Espero ter ajudado e conte sempre conosco aqui no fórum.

Até mais, Claudio!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!