Error al detectar la codificación en JSON

Problema

Se produce un error en el trabajo de Spark con una excepción que contiene el mensaje:

Invalid UTF-32 character 0x1414141(above 10ffff)  at char #1, byte #7)
At org.apache.spark.sql.catalyst.json.JacksonParser.parse

Causa

El lector del origen de datos JSON puede detectar automáticamente la codificación de los archivos JSON de entrada mediante BOM al principio de los archivos.

Sin embargo, BOM no es obligatorio para el estándar Unicode y está prohibido por RFC 7159.

Por ejemplo, sección 8.1:

...Implementations MUST NOT add a byte order mark to the beginning of a JSON text.

Como consecuencia, Spark no siempre puede detectar el juego de caracteres correctamente y leer el archivo JSON.

Solución

Para solucionar el problema, deshabilite el mecanismo de detección automática del juego de caracteres y establezca explícitamente el juego de caracteres con la encoding opción :

.option("encoding", "UTF-16LE")