Compartilhar via


INCONSISTENT_BEHAVIOR_CROSS_VERSION condição de erro

SQLSTATE: 42K0B

Você pode obter um resultado diferente devido à atualização para uma nova versão.

DATETIME_PATTERN_RECOGNITION

Spark >= 3,0:

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

  1. Você pode definir <config> como "LEGACY" para restaurar o comportamento antes do Spark 3.0.

  2. Você pode formar um padrão de data e hora válido com o guia em '<docroot>/sql-ref-datetime-pattern.html'.

DATETIME_WEEK_BASED_PATTERN

Spark >= 3,0:

Todos os padrões baseados em semana não têm suporte desde o Spark 3.0, caractere baseado em semana detectado: <c>.

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

PARSE_DATETIME_BY_NEW_PARSER

Spark >= 3,0:

Falha ao analisar <datetime> no novo analisador.

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

READ_ANCIENT_DATETIME

Spark >= 3,0:

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

de arquivos <format> podem ser ambíguos, pois os arquivos podem ser gravados por

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

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

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

a opção de fonte de dados <option> para "LEGACY" para redefinir os valores de data e hora

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

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

para "CORRECTED".

TBD

Spark >= <sparkVersion>: <details>

WRITE_ANCIENT_DATETIME

Spark >= 3,0:

gravar datas antes de 1582-10-15 ou carimbos de data/hora antes de 1900-01-01T00:00:00Z nos arquivos <format> pode ser perigoso, pois os arquivos podem ser lidos pelo Spark 2.x ou por versões herdadas do Hive posteriormente, que usam um calendário híbrido herdado 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 em relação à diferença de calendário durante a gravação, a fim de obter máxima interoperabilidade.

Ou defina a configuração como "CORRECTED" para gravar os valores de datetime como estão, se tiver certeza de que os arquivos gravados serão lidos apenas pelo Spark 3.0+ ou por outros sistemas que usam o calendário Gregoriano Proléptico.