перезапись записи pyspark разделена, но все еще перезаписывает предыдущую загрузку - PullRequest
0 голосов
/ 23 октября 2019

Я запускаю сценарий pyspark, где при каждом запуске сценария я сохраняю некоторые данные в корзину s3, и у меня есть этот код:

data.repartition(1).write.mode("overwrite").format("parquet").partitionBy('time_key').save( "s3://path/to/directory")

Он разбивается по ключу time_key, но в каждомвыполнить, но последний дамп данных перезаписывает предыдущие данные, а не добавляет раздел. Ключ time_key уникален для каждого запуска.

Это правильный код, если я хочу записывать данные в s3 и разделять по ключу времени при каждом запуске?

1 Ответ

2 голосов
/ 23 октября 2019

Если вы используете Spark версии 2.3 +, то эта проблема была исправлена ​​с помощью https://issues.apache.org/jira/browse/SPARK-20236

Необходимо установить флаг spark.sql.sources.partitionOverwriteMode="dynamic", чтобы перезаписать определенный раздел данных.

А также учитывая, что ваш оператор time_key является уникальным для каждого запуска, вы, вероятно, можете использовать сам режим добавления.

...