Passei por isso com AWS Glue e Postgres. Houve um bug no Spark 2.1.0 que o corrigiu para a maioria das pessoas, mas alguém postou uma solução alternativa nos comentários sobre o uso de um opção de esquema personalizado .
Eu tive um problema semelhante com o AWS Glue e o Spark SQL:eu estava calculando um valor de moeda para que o resultado fosse um float. Cola lançou o erro
Decimal precision 1 exceeds max precision -1
mesmo que o Catálogo de Dados do Glue tenha definido a coluna como um decimal. Peguei uma página da solução customSchema acima lançando explicitamente a coluna como NUMERIC(10,2) e o Spark parou de reclamar.