Oi Luciano, tudo bem?
A criação de clusters em sistemas de recomendação, como no caso do Spark, tem algumas vantagens. Quando você clusteriza os dados, está essencialmente agrupando itens semelhantes.
Destaco que calcular a distância euclidiana entre todos os pares de músicas em um dataset grande pode ser computacionalmente caro. Ao usar clusters, você reduz o número de cálculos necessários, pois só precisa calcular distâncias dentro de cada cluster, em vez de em todo o dataset. Além disso, em datasets muito grandes, a clusterização ajuda a manter o sistema escalável. É mais fácil e rápido fazer cálculos em um subconjunto de dados (um cluster) do que em todo o conjunto.
E quanto as recomendações, os clusters ajudam a garantir que as recomendações sejam mais relevantes, pois são baseadas em itens que já são semelhantes entre si, melhorando na precisão das recomendações.
Quanto à comparação entre o custo de processamento de clusterização e o cálculo de distâncias, isso pode variar dependendo do tamanho do dataset e da implementação específica. O K-means, por exemplo, é um algoritmo iterativo que pode ser computacionalmente caro, mas ainda assim, em muitos casos, pode ser mais eficiente do que calcular todas as distâncias possíveis em datasets muito grandes.
Para aferir o que é mais pesado, você poderia realizar testes de desempenho em seu ambiente específico, medindo o tempo de execução e o uso de recursos para ambas as abordagens.
Espero ter esclarecido!
Abraços e bons estudos!