Скопируйте txt-файл из файлов Azure в хранилище BLOB-объектов с помощью Databricks

Я хочу прочитать файл из файлов Azure (это удалось с помощью ShareClient) и экспортировать этот файл в хранилище BLOB-объектов Azure.

Сначала я монтирую контейнер в Databricks с помощью следующего кода:

def mount(container, account_name):
    """Mount a container in blob storage"""
    mount_list = [_.mountPoint for _ in dbutils.fs.mounts()]
    mount_point = f"/mnt/{container}/"
    if mount_point not in mount_list:
        dbutils.fs.mount(
                source = f"wasbs://{container}@{account_name}.blob.core.windows.net/",
                mount_point = mount_point,
                extra_configs = {f"fs.azure.account.key.saweaaedwh.blob.core.windows.net":dbutils.secrets.get(scope = "KEY-WE-AAE-DWH", key = f"key-{account_name}")})
        print(f"Container {container} is successfully mounted")
    else:
        print("Container is already mounted")

Когда я хочу загрузить файл со следующим кодом:

with open(f"/dbfs/mnt/datascience/spc/failed2/test.txt", "wb") as outfile:
    download_stream = file_client.download_file()
    outfile.write(download_stream.readall())

Появляется следующее сообщение об ошибке:

FileNotFoundError: [Errno 2] No such file or directory: '/dbfs/mnt/datascience/spc/failed2/test.txt'

Для создания этого каталога я использовал этот код:

dbutils.fs.mkdirs('/mnt/datascience/spc/failed2/test.txt')

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

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

0 ответов

Другие вопросы по тегам