при указании такого же способа партиционирования и бакетирования, то есть, df.write.mode(SaveMode.Append).bucketBy(n,field,fields:_*).sortBy(field2,fields2:_*).saveAsTable(tableName) каждый раз будет записывать в одни и те же бакеты записи, которые дают одинаковый хеш по модулю n. Существующие файлы не будут изменены, потому что это в общем случае невозможно. Сколько бы строк ни было добавлено в бакет, будет создан минимум один новый файл в бакете
невозможно - это я говорю с точки зрения современной реализации, вообще, конечно, можно переписать файл или присоединить к нему блок, и упаковать всё это в FormatWriter, но сейчас этого совершенно точно нет в спарк 2.4.0, файлы не изменяются, только новые создаются