Spark удалить файл Apache Orc

Я сохранил фрейм данных spark как файл orc, используя оболочку spark следующим образом:

    jdbcDF.write.format("orc").partitionBy("ID").save("applicationsPartitioned")

Я обнаружил, что данные теперь живут в Windows\ System32\ ApplicationsPartitioned

Как правильно удалить файл orc? Я мог бы просто выключить спарк и удалить каталог сам, но есть ли мета-данные, хранящиеся где-то об этом каталоге?

2 ответа

Решение

Вы должны сделать это вручную, однако вы можете использовать файловую систему hadoop для этого.

Например:

import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path
val fs = FileSystem.get(spark.sparkContext.hadoopConfiguration)
fs.delete(new Path(path), recursive)

Это сделает его независимым от ОС и файловой системы.

Я думаю, придется удалить каталог вручную, но если вы пытаетесь удалить каталог для следующего вывода, вы можете просто использовать метод mode() переопределить существующий каталог

jdbcDF.write.format("orc")
.mode(SaveMode.Overwrite)
.partitionBy("ID")
.save("applicationsPartitioned")

Надеюсь это поможет!

Другие вопросы по тегам