Используя Spark, я пытаюсь перенести некоторые данные (в формате csv, parquet) в корзину S3.
df.write.mode("OVERWRITE").format("com.databricks.spark.csv").options(nullValue=options['nullValue'], header=options['header'], delimiter=options['delimiter'], quote=options['quote'], escape=options['escape']).save(destination_path)
В приведенном выше фрагменте кода переменная destination_path содержит область памяти S3, в которую необходимо экспортировать данные.
Например. destination_path = "s3://some-test-bucket/manish/"
В папке manish
из some-test-bucket
, если у меня есть несколько файлов и подпапок. Приведенная выше команда удалит их все и спарк запишет новые выходные файлы. Но я хочу перезаписать только один файл этим новым файлом.
Даже если я смогу перезаписать только содержимое этой папки, но подпапка останется нетронутой, даже это решит проблему в определенной степени.
Как этого достичь?
Я пытался использовать режим в качестве добавления вместо перезаписи.
Здесь в этом случае имя подпапки остается неизменным, но снова все содержимое папки manish
и ее подпапки перезаписываются.