Partilhar via


INCONSISTENT_BEHAVIOR_CROSS_VERSION condição de erro

SQLSTATE: 42K0B

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

DATETIME_PATTERN_RECOGNITION

Spark >= 3,0:

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

  1. Podes definir <config> para "LEGACY" para restaurar o comportamento antes do Spark 3.0.

  2. Pode criar um padrão de data e hora válido utilizando o guia em '<docroot>/sql-ref-datetime-pattern.html'.

DATETIME_WEEK_BASED_PATTERN

Spark >= 3.0:

Todos os padrões baseados em semanas não são suportados desde o Spark 3.0, detetado caractere baseado em semanas: <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.

Podes definir <config> para "LEGACY" para restaurar o comportamento antes do Spark 3.0, ou definir para "CORRECTED" e tratar como uma cadeia de datas inválida.

READ_ANCIENT_DATETIME

Spark >= 3,0:

datas anteriores a 1582-10-15 ou marcações de tempo antes de 1900-01-01T00:00:00Z

os ficheiros from <format> podem ser ambíguos, pois os ficheiros 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 de Spark 3.0+.

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

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

Em relação à diferença de calendário durante a leitura. Para ler os valores de data e hora

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

para "CORRECTED".

TBD

Spark >= <sparkVersion>: <details>

WRITE_ANCIENT_DATETIME

Spark >= 3,0:

escrever datas antes de 1582-10-15 ou timestamps antes de 1900-01-01T00:00:00Z em ficheiros <format> pode ser perigoso, pois esses ficheiros podem ser lidos pelo Spark 2.x ou por versões anteriores do Hive, que utilizam um calendário híbrido legado diferente do calendário Proleptic Gregorian do Spark 3.0+.

Veja mais detalhes em SPARK-31404.

Podes definir <config> para "LEGACY" para rebasear os valores de data-hora em relação à diferença do calendário durante a escrita, para obter a máxima interoperabilidade.

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