1
resposta

[Sugestão] Não se usa float para valores monetários

Da página: <<< link: https://cursos.alura.com.br/course/spark-apresentando-ferramenta/task/97738 Na última aula verificamos os tipos de dados de nossos DataFrames. Quando avaliamos os dados do DataFrame empresas notamos que a coluna com a informação de capital social da empresa (capital_social_da_empresa) estava representada como uma string. Marque a opção que na sua opinião indica a melhor forma de armazenar este tipo de dados.

Alternativa incorreta double.

Alternativa incorreta date.

Alternativa incorreta integer.

O tipo integer que vimos em nossos Dataframes é utilizado para indicar que o dado é representado por um número inteiro, ou seja, um número que não apresenta casas decimais. Capital social é uma informação monetária, então precisamos de um tipo que represente esta informação de maneira mais correta.

Ocorre que não se usa float (double é um float mais preciso) para valores monetários. A moeda de dez centavos: R$0,10 é dízima periódica em binário. O tipo correto conforme link passado na aula anterior https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/data_types.html é: DecimalType([precision, scale]) Decimal (decimal.Decimal) data type. Ocorre que valor social é um número inteiro, normalmente múltiplo de mil ou dez mil. Nesse caso, a opção correta da página seria integer e não double.

Sugiro corrigir a questão: OU mudando a resposta correta para INTEGER OU incluindo a opção mais correta DecimalType

1 resposta

Ei, José! Tudo bem?

Muito obrigada por nos trazer uma sugestão tão detalhada! A atividade foi corrigida para um melhor aproveitamento do conteúdo, você pode conferir ao clicar nela novamente.

Agradeço a sua sugestão e estamos por aqui quando houver dúvidas!

Até mais, José!

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