Моя повестка дня -
- Запросить внешнюю таблицу Hive и сохранить данные во фрейме данных.
- Произвести некоторую обработку фрейма данных.
- Сохранить обработанные данные в какое-то другое расположение 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
) -
введите описание изображения здесь
Я действительно не понимаю, почему это происходит, я не хочу терять данные откуда угодно.