Я записываю фрейм данных в s3, как показано ниже. Целевое расположение: s3: // test / folder
val targetDf = spark.read.schema(schema).parquet(targetLocation)
val df1=spark.sql("select * from sourceDf")
val df2=spark.sql(select * from targetDf)
/*
for loop over a date range to dedup and write the data to s3
union dfs and run a dedup logic, have omitted dedup code and for loop
*/
val df3=spark.sql("select * from df1 union all select * from df2")
df3.write.partitionBy(data_id, schedule_dt).parquet("targetLocation")
Spark создает дополнительный столбец раздела при записи, как показано ниже:
Exception in thread "main" java.lang.AssertionError: assertion failed: Conflicting partition column names detected:
Partition column name list #0: data_id, schedule_dt
Partition column name list #1: data_id, schedule_dt, schedule_dt
Во время записи включен класс оптимизатора EMR. Использование искры 2.4.3 Пожалуйста, дайте мне знать, что может быть причиной этой ошибки.
Спасибо Abhineet