Я пишу DataFrame в Redshift, используя временную корзину s3 и Parquet в качестве временного формата.Spark успешно записал данные во временную корзину s3, но Redshift при попытке скопировать данные в хранилище не удалось выполнить следующую ошибку:
error: S3 Query Exception (Fetch)
code: 15001
context: Task failed due to an internal error. File 'https://s3.amazonaws.com/...../part-00001-de882e65-a5fa-4e52-95fd-7340f40dea82-c000.parquet has an incompatible Parquet schema for column 's3://bucket-dev-e
query: 17567
location: dory_util.cpp:872
process: query0_127_17567 [pid=13630]
Что я делаю не так и как это исправить?
ОБНОВЛЕНО 1
Это подробная ошибка:
S3 Query Exception (Fetch). Task failed due to an internal error.
File 'https://....d5e6c7a/part-00000-9ca1b72b-c5f5-4d8e-93ce-436cd9c3a7f1-c000.parquet has an incompatible Parquet schema for column 's3://.....a-45f6-bd9c-d3d70d5e6c7a/manifest.json.patient_dob'.
Column type: TIMESTAMP, Parquet schema:\noptional byte_array patient_dob [i:26 d:1 r:0]\n (s3://.......-45f6-bd9c-d3d70d5e6c7a/
Версия Apache Spark 2.3.1
Также попытались настроить следующие свойства с помощьюне повезло:
writer
.option("compression", "none")
.option("spark.sql.parquet.int96TimestampConversion", "true")
.option("spark.sql.parquet.int96AsTimestamp", "true")
.option("spark.sql.parquet.writeLegacyFormat", "true")
В чем может быть проблема?
ОБНОВЛЕНО 2
Кадр данных patient_dob
тип столбца DateType
Redshift patient_dob
тип поля date
Выбор S3 показывает на patient_dob
Поле паркета - "patient_dob": "1960-05-28"