Какие части паркетного файла имеют значение? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть куча паркетных данных в структуре, что-то вроде col1=1/col2=2/col3=3/part-00000-33b48309-0442-4e86-870f-f3070268107f-c000.snappy.parquet

Я прочитал о том, что смог найти, и кажется довольно ясным, что означает каждая часть имени файла - part-00000 приращений на файл в разделе, c000 - это что-то, что связано с другой частью конфигурации вывода, а остальное - UUID для предотвращения коллизий при параллельной записи.

Мне интересно - какие частиимя файла я могу изменить или избавиться?В частности, безопасно ли просто удалить UUID?

(Большая мотивация состоит в том, что мне нужно со временем добавлять данные в существующее хранилище, но я хочу сохранить N файлов на раздел, и так как вы не можетеперезаписать файлы, которые вы читаете, мне нужно подготовить новые файлы, а затем скопировать их, что будет проще с известными именами файлов)

1 Ответ

0 голосов
/ 04 декабря 2018

Может быть, вы можете применить решение из Spark паркетная перегородка: большое количество файлов

data
  .repartition($"key",floor($"row_number"/N)*N)
  .write.partitionBy("key")
  .parquet("/location")
...