JSON'da kodlama algılama hatası
Sorun
Spark işi şu iletiyi içeren özel durumla başarısız oluyor:
Invalid UTF-32 character 0x1414141(above 10ffff) at char #1, byte #7) At org.apache.spark.sql.catalyst.json.JacksonParser.parse
Nedeni
JSON veri kaynağı okuyucusu, dosyaların başında BOM kullanarak giriş JSON dosyalarının kodlamasını otomatik olarak algılanabilir.
Ancak BOM, Unicode standardı tarafından zorunlu değildir ve RFC 7159 tarafından yasaklanmıştır.
Örneğin, bölüm 8.1:
...Implementations MUST NOT add a byte order mark to the beginning of a JSON text.
Sonuç olarak Spark, karakter kümesine her zaman doğru şekilde bakamıyor ve JSON dosyasını okuyamıyor.
Çözüm
Sorunu çözmek için karakter kümesi otomatik algılama mekanizmasını devre dışı bırakma ve şu seçeneği kullanarak karakter kümesi açıkça
encoding ayarlama:
.option("encoding", "UTF-16LE")