Compartilhar via


Classe de erro INCONSISTENT_BEHAVIOR_CROSS_VERSION

SQLSTATE: 42K0B

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

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 datetime válido com o guia de ‘<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 SQL EXTRACT.

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+.

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

a opção de fonte de dados <option> para "LEGACY" para rebasear os valores de datetime

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 em arquivos <format> pode ser perigoso, pois os arquivos podem ser lidos pelo Spark 2.x ou versões herdadas do Hive mais tarde, que usa um calendário híbrido herdado diferente do calendário gregoriano proléptico do Spark 3.0+.

Confira mais detalhes no SPARK-31404.

Você pode definir <config> como "LEGACY" para trocar base dos valores de datetime w.r.t. a diferença de calendário durante a gravação, para obter a interoperabilidade máxima.

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