Me encontré con esto con AWS Glue y Postgres. Hubo un error en Spark 2.1.0 que solucionó el problema para la mayoría de las personas, pero alguien publicó una solución alternativa en los comentarios sobre el uso de un opción customSchema .
Tuve un problema similar con AWS Glue y Spark SQL:estaba calculando un monto de moneda, por lo que el resultado fue flotante. Glue arrojó el error Decimal precision 1 exceeds max precision -1
a pesar de que el catálogo de datos de Glue definió la columna como un decimal. Tomó una página de la solución customSchema anterior al convertir explícitamente la columna como NUMERIC(10,2) y Spark dejó de quejarse.