Partilhar via


INCONSISTENT_BEHAVIOR_CROSS_VERSION classe de erro

SQLSTATE: 42K0B

Você pode obter um resultado diferente devido à atualização para

DATETIME_PATTERN_RECOGNITION

Faísca >= 3,0:

Falha ao reconhecer <pattern> o padrão no DateTimeFormatter.

  1. Você pode definir <config> como "LEGACY" para restaurar o comportamento anterior ao Spark 3.0.
  2. Você pode formar um padrão datetime válido com o guia de '<docroot>/sql-ref-datetime-pattern.html'.

DATETIME_WEEK_BASED_PATTERN

Faísca >= 3,0:

Todos os padrões baseados em semana não são suportados desde o Spark 3.0, detetado caractere baseado em semana: <c>.

Em vez disso, use a função SQL EXTRACT.

PARSE_DATETIME_BY_NEW_PARSER

Faísca >= 3,0:

Falha ao analisar <datetime> no novo analisador.

Você pode definir <config> como "LEGACY" para restaurar o comportamento anterior ao Spark 3.0 ou definir como "CORRECTED" e tratá-lo como uma cadeia de caracteres datetime inválida.

READ_ANCIENT_DATETIME

Faísca >= 3,0:

datas de leitura antes de 1582-10-15 ou carimbos de data/hora antes de 1900-01-01T00:00:00Z

de <format> arquivos pode ser ambíguo, como os arquivos podem ser escritos por

Spark 2.x ou versões herdadas do Hive, que usa um calendário híbrido herdado

isso é diferente do calendário gregoriano proléptico do Spark 3.0+.

Veja mais detalhes em SPARK-31404. Você pode definir a configuração <config> SQL ou

A opção da origem de dados <option> para "LEGACY" de modo a rebasear os valores de data e hora.

w.r.t. a diferença de calendário durante a leitura. Para ler os valores datetime

como está, defina a configuração <config> SQL ou a opção de fonte de dados <option>

para "CORRECTED".

TBD

Faísca >= <sparkVersion>: <details>

WRITE_ANCIENT_DATETIME

Faísca >= 3,0:

escrever datas antes de 1582-10-15 ou carimbos de data/hora antes de 1900-01-01T00:00:00Z em <format> arquivos pode ser perigoso, pois os arquivos podem ser lidos pelo Spark 2.x ou versões legadas do Hive mais tarde, que usa um calendário híbrido legado que é diferente do calendário gregoriano proléptico do Spark 3.0+.

Veja mais detalhes em SPARK-31404.

Você pode definir <config> como "LEGACY" para ajustar os valores de data e hora com respeito à diferença de calendário durante a escrita, para obter a máxima interoperabilidade.

Ou defina a configuração como "CORRECTED" para escrever os valores de data e hora tal como estão, se tiver a certeza de que os arquivos escritos só serão lidos pelo Spark 3.0+ ou outros sistemas que usam o calendário gregoriano proléptico.