Подтвердить что ты не робот

Нужны ли файлы метаданных для паркета?

Когда файл Parquet data написан с разделением в столбце date, мы получаем структуру каталогов, такую ​​как:

/data
    _common_metadata
    _metadata
    _SUCCESS
    /date=1
        part-r-xxx.gzip
        part-r-xxx.gzip
    /date=2
        part-r-xxx.gzip
        part-r-xxx.gzip

Если раздел date=2 удален без участия утилит Parquet (через оболочку или файл-браузер и т.д.), любой из файлов метаданных нужно отбросить назад, когда был только раздел date=1?

Или это нормально удалять разделы по своему желанию и переписывать их (или нет) позже?

4b9b3361

Ответ 1

Если вы используете DataFrame, не нужно откатывать файлы метаданных.

Например:

Вы можете написать свой DataFrame на S3

df.write.partitionBy("date").parquet("s3n://bucket/folderPath")

Затем вручную удалить один из ваших разделов (дата = 1 папка на S3) с помощью браузера S3 (например, CloudBerry)

Теперь вы можете

  • Загрузите свои данные и убедитесь, что данные по-прежнему действительны, за исключением данных, которые у вас были в разделе date = 1 sqlContext.read.parquet("s3n://bucket/folderPath").count

  • Или переписать ваш DataFrame (или любой другой DataFrame с той же схемой) с помощью режима добавить

    df2.write.mode("append").partitionBy("date").parquet("s3n://bucket/folderPath")
    

Вы также можете посмотреть этот question из форума databricks.