Все данные удалены из S3 после записи в режиме «перезаписи» через Databricks - PullRequest
0 голосов
/ 05 августа 2020

Моя повестка дня -

  1. Запросить внешнюю таблицу Hive и сохранить данные во фрейме данных.
  2. Произвести некоторую обработку фрейма данных.
  3. Сохранить обработанные данные в какое-то другое расположение S3 (т.е. разделение по бизнес-имени также и при записи фрейма данных).

Важно - Все вышеперечисленное выполняется в Databricks Notebook.

Итак, Моя таблица улья считывает разделы из такого места на S3 -

Расположение улья - s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass

Содержит такие разделы, как -

s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200804230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200803230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200802230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200801230000

Запись в S3 происходит с -

data.coalesce(coalesceSize/maxFilterLength)
        .write
        .partitionBy("businessname", "ingestiontime")
        .mode(SaveMode.Overwrite)
        .format(flatDataFormat)
        .option("path", s"${flatteningBasePath}/")
        .save()

И место назначения -

s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=abc/ingestiontime=20200804230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=abc/ingestiontime=20200803230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=abc/ingestiontime=20200802230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=abc/ingestiontime=20200801230000
.....
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=hell/ingestiontime=20200804230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=hell/ingestiontime=20200803230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=hell/ingestiontime=20200802230000
s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/businessname=hell/ingestiontime=20200801230000
....

Теперь проблема в том, что все это происходит успешно, но исходные данные в разделах улья, то есть -

    s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200804230000
    s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200803230000
    s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200802230000
    s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200801230000
В

внезапно появляется NO DATA , что также подтверждается, когда я запрашиваю таблицу улья, и она возвращает мне null.

При внимательном рассмотрении в моей папке s3 (предположим, для этого раздела - s3://dev/gp/data/tmp/g.p/HistoryData/myDataclass/ingestiontime=20200801230000) -

введите описание изображения здесь

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

...