Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Py4JJavaError ved lagring af Delta-tabel på Spark 3.5 (Fabric 1.3) på grund af ikke-syndebukede kontroltegn
Når du gemmer data i en Delta-tabel i Spark, kan der opstå en fejl, hvis dataene indeholder kontroltegn med Unicode-kodepunkter mellem 20 og 32. I dette scenarie skriver et Spark-job poster, der indeholder specialkontroltegn (f.eks. ASCII-kode 20, "\u0014") til en Delta-tabel. Under skrivehandlingen forsøger Spark at serialisere data i JSON-format for Delta-tabeltransaktionsloggen. Unescaped-kontroltegn medfører, at JSON-serialiseringsfunktionen mislykkes, hvilket udløser JsonParseException. Dette problem er specifikt for Fabric 1.3. Problemet er ikke observeret på Fabric 1.1 eller 1.2.
status: åbn
produktoplevelse: Data Engineering
Symptomer
Du kan se en Py4JJavaError og følgende JsonParseException (eller en lignende variant): com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 20)): has to be escaped using backslash to be included in string value…
.
Løsninger og løsninger
Før du gemmer en tabel med specialtegnene, skal du angive følgende Spark-konfiguration for at undgå at indsamle statistikker fra Arrow, hvilket kan forhindre dette problem med ikke-syndebukede kontroltegn: spark.conf.set("spark.microsoft.delta.stats.collect.fromArrow", "false")
. Denne indstilling sikrer, at Spark ikke forsøger at indsamle statistikker, der indeholder disse problematiske tegn, og undgår fejlen til fortolkning af kontroltegn.