1
resposta

[Bug] Bug no código

Existe um pequeno problema na etapa em que tentamos salvar o DataFrame em formato Parquet. No Spark, quando você lê um arquivo usando a API do Spark e converte para um DataFrame Pandas, você não precisa usar to_parquet para salvar no formato Parquet, pois isso é específico do Pandas, não do Spark.

Usei o seguinte código para correção:

Carregando o arquivo data_by_year.csv utilizando o Spark

df_data_year = spark.read.format('csv') \
.option("inferSchema", 'True') \
.option("header", 'True') \
.option("sep", ',') \
.load("dbfs:/FileStore/dados/data_by_year.csv")

Convertendo as colunas selecionadas do DataFrame de string para float

columns_to_convert = ['acousticness', 'danceability', 'duration_ms', 'energy', 'instrumentalness', 'liveness', 'loudness', 'speechiness', 'tempo', 'valence', 'popularity']
for col in columns_to_convert:
    df_data_year = df_data_year.withColumn(col, df_data_year[col].cast('float'))

Salvando o DataFrame em formato Parquet no diretório especificado

path = "dbfs:/FileStore/dados_tratados/data_year.parquet"
df_data_year.write.parquet(path, mode='overwrite')
1 resposta

Oi, Murilo! Como vai?

Muito obrigada por compartilhar essa informação conosco. Realmente, ao ler um arquivo usando a API do Spark e convertê-lo para um DataFrame, não é necessário usar o método to_parquet() — podemos, por outro lado, trabalhar com o método write.parquet(), assim como você ilustrou.

No entanto, ao converter um DataFrame Spark para um DataFrame Pandas usando toPandas() (tal qual fizemos neste desafio), podemos utilizar to_parquet() para salvar o DataFrame como Parquet.

Murilo, agradeço novamente a sua observação. Isso contribui para a melhoria contínua de nossos conteúdos.

Um forte abraço.