Spark — Ошибка с датой и временем для чтения файла parquet

#apache-spark #apache-spark-sql #jupyter-notebook

Вопрос:

Я нахожусь в EMR, получаю данные из каталога клея

СТУДИЯ EMR

когда я пытаюсь передать эти данные и прочитать их через Spark SQL, это выдает мне следующую ошибку:

Ошибка

 Caused by: org.apache.spark.SparkUpgradeException: 
You may get a different result due to the upgrading of Spark 3.0: reading dates before 1582-10-15 or timestamps 
before 1900-01-01T00:00:00Z from Parquet files can be ambiguous, as the files may be written by Spark 2.x or legacy versions of Hive, which uses a legacy hybrid calendar that is different from Spark 3.0 's Proleptic Gregorian calendar. 
See more details in SPARK-31404. You can set spark.sql.legacy.parquet.datetimeRebaseModeInRead to 'LEGACY' to rebase the datetime values w.r.t. the calendar difference during reading. Or set spark.sql.legacy.parquet.datetimeRebaseModeInRead to 'CORRECTED' to read the datetime values as it is.
    at org.apache.spark.sql.execution.datasources.DataSourceUtils$.newRebaseExceptionInRead(DataSourceUtils.scala:159)
    at org.apache.spark.sql.execution.datasources.DataSourceUtils$.$anonfun$creteTimestampRebaseFuncInRead$1(DataSourceUtils.scala:209)
    at org.apache.spark.sql.execution.datasources.parquet.ParquetRowConverter$anon$4.addLong(ParquetRowConverter.scala:330)
    at org.apache.parquet.column.impl.ColumnReaderImpl$2$4.writeValue(ColumnReaderImpl.java:268)
    at org.apache.parquet.column.impl.ColumnReaderImpl.writeCurrentValueToConverter(ColumnReaderImpl.java:367)
    at org.apache.parquet.io.RecordReaderImplementation.read(RecordReaderImplementation.java:406)
    at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:226)
    ... 21 more
 

Я попытался изменить следующие настройки в spark, но безуспешно

spark.conf.set(«spark.sql.legacy.parquet.datetimeRebaseModeInRead»,»ИСПРАВЛЕНО») и spark.conf.set(«spark.sql.legacy.parquet.datetimeRebaseModeInRead», «НАСЛЕДИЕ»)

Я также сделал выбор в представлении, созданном с помощью следующего кода, и он работал без проблем.

введите описание изображения здесь

поэтому это заставляет меня думать, что проблема в том, что я использую% sql

почему это происходит? Я делаю что-то не так?

Комментарии:

1. Было ли найдено решение этой проблемы?

2. Со своей стороны, код верен, и мы провели тесты с поддержкой aws для видеозвонков. Я собрал билет в службу поддержки Amazon. Он все еще находится на рассмотрении.