Как просмотреть указанные c изменения данных в конкретной версии в Delta Lake - PullRequest
0 голосов
/ 03 февраля 2020

Прямо сейчас у меня есть одни тестовые данные, у которых есть 1 раздел, и внутри этого раздела у него есть 2 файла паркета

Если я читаю данные как:

val df = spark.read.format("delta").load("./test1510/table@v1")

Тогда я получаю последние данные с 10000 строк, и если я прочитал:

val df = spark.read.format("delta").load("./test1510/table@v0")

Тогда я получу 612 строк, теперь мой вопрос: как я могу просмотреть только те новые строки, которые были добавлены в версии 1, которая составляет 10 000 - 612 = только 9388 строк

Короче говоря, в каждой версии я просто хочу посмотреть, какие данные изменились. В целом в дельта-журнале я могу видеть json файлы, а внутри json файла я вижу, что он создает отдельный файл паркета в каждой версии, но как я могу просмотреть его в коде?

Я использую Искра с Scala

1 Ответ

0 голосов
/ 03 февраля 2020

вам даже не нужно go на parquet уровне файла. Вы можете просто использовать SQL запрос для достижения этой цели.

%sql 
SELECT * FROM test_delta VERSION AS OF 2 minus SELECT * FROM test_delta VERSION AS OF 1

Приведенный выше код даст вам новые добавленные строки в версии 2, которых не было в версии 1

, в вашем случае вы можете сделать следующее

val df1 = spark.read.format("delta").load("./test1510/table@v1")
val df2 = spark.read.format("delta").load("./test1510/table@v0")
display(df2.except(df1))
...