Spark Overwrite для конкретного раздела паркетных файлов - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть огромная таблица, состоящая из миллиардов (20) записей, и мой исходный файл в качестве входного файла является целевым паркетным файлом.

Каждый день я получаю входящий дельта-файл для обновления существующих записей в целевой папке и добавления новых данных.

С использованием плавающего фрейма SQL SQL можно ли читать и обновлять отдельные разделы файла паркета?

1 Ответ

0 голосов
/ 07 сентября 2018

Я нахожу вопрос немного неясным с точки зрения перезаписи в заголовке, но добавляю его в текст. Я думаю, это зависит от толкования.

Кроме того, не уверен, что это таблица или просто файл, но, например, это работает нормально:

df.write.format("parquet").mode("append").save("/user/mapr/123/SO.parquet")

В этом случае вы можете добавлять любые данные несколько раз в каталог, а не в зарегистрированную таблицу Hive. и DF Writer делает все это.

Если перезаписать, то этого тоже достаточно, но вам также необходимо предоставить исходные данные, если вы не хотите их потерять:

df.write.format("parquet").mode("overwrite").save("/user/mapr/123/SO.parquet")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...