#apache-spark #apache-spark-sql #jupyter-notebook
Вопрос:
Я нахожусь в 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. Он все еще находится на рассмотрении.