Объединение файлов в контейнере Azrue Data Lake

#pyspark #azure-data-factory-2 #azure-databricks

#pyspark #azure-data-factory-2 #azure-databricks

Вопрос:

Рассмотрим следующий сценарий:

Я хочу, чтобы мой поток данных выглядел следующим образом: контейнер импорта —> блоки данных (преобразование) -> контейнер экспорта

Текущая ситуация после того, как я закончил с контейнером процесса преобразования:

 ---import
    --folder
        --mydata.csv
---export
    --folder
        --part-1-transformed-mydata.csv
        --part-2-transformed-mydata.csv
        --part-3-transformed-mydata.csv
        --initial.txt
        --success.txt
        --finish.txt
  

Я хочу, чтобы структура была приведена ниже:

 ---import
    --folder
        --mydata.csv
---export
    --folder
        --transformed-mydata.csv
  

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

Примечание: я использую Apache Spark 3.0.0, Scala 2.12 в блоках данных с 14 ГБ памяти, 4 ядра. Тип кластера стандартный

Ответ №1:

вам либо потребуется перераспределить данные в один раздел (обратите внимание, что это сводит на нет смысл использования распределенной вычислительной платформы)

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

возможно, было бы лучше думать о папке экспорта как о «файле», если это имеет смысл. это не решает вашу проблему, но если по какой-либо причине вам не нужно создавать один файл, у большинства пользователей не возникнет проблем с чтением данных в каталоге