Delta Merge nemůže přeložit vnořené pole

Problém

Pokoušíte se o rozdílové sloučení s automatickým vývojem schématu, ale selže s Delta Merge: cannot resolve 'field' due to data type mismatch chybovou zprávou.

Příčina

K tomu může dojít v případě, že jste provedli změny vnořených polí sloupců.

Předpokládejme například, že máme sloupec s názvem s vnořenými poli Address , streetName a houseNumber city .

Pokus o přidání dalšího pole nebo odebrání pole způsobí, že všechny nadcházející transakce vložení nebo aktualizace v tabulce selžou, i když je pro mergeSchema transakci pravdivá.

Řešení

Toto chování je záměrné.

Funkce automatického vývoje schématu Delta podporuje pouze sloupce nejvyšší úrovně. Vnořená pole se nepodporují.

Další informace najdete v dokumentaci k automatickému vývoji schématu Delta Lake.