удалить файлы из azure озера данных gen2, возраст которых составляет x дней - PullRequest
0 голосов
/ 05 мая 2020

У меня есть требование удалить паркетные файлы (с суффиксом даты) из azure хранилища озера данных gen2 с помощью записных книжек databricks. Файлы, которым исполнилось «x» дней, должны быть удалены. Может ли кто-нибудь помочь мне с этим требованием

1 Ответ

1 голос
/ 05 мая 2020

Очевидно, вы хотите быть супер-супер-осторожным с удалениями. Убедитесь, что вы полностью протестировали и удалили logi c, прежде чем полностью полагаться на него. Сказав это, вероятно, лучше всего перечислить все файлы, чтобы вы знали, что у вас есть в инвентаре, а затем начать процесс удаления. Что-то вроде этого должно сделать это за вас.

Список файлов:

# Python
from azure.storage.blob import BlobBlockService

blob_block_service = BlobBlockService(account_name = 'your_account_name', account_key = 'you_account_key')

generator = blob_block_service.list_blobs('rawdata')
for blob in generator:
    print("\t Blob Name: " + blob.name)


##############################################################################
# using prefix
from azure.storage.blob import BlobBlockService

blob_block_service = BlobBlockService(account_name = 'your_account_name', account_key = 'you_account_key')

generator = blob_block_service.list_blobs('rawdata', prefix = '2020/01/01/')
for blob in generator:
    print("\t Blob Name: " + blob.name)

Удалить файлы (БУДЬТЕ ОЧЕНЬ ОСТОРОЖНЫ):

import os
import glob

# get a recursive list of file paths that matches pattern including sub directories
fileList = glob.glob('/rawdata/your_path_here/**/*.txt', recursive=True)

# Iterate over the list of filepaths & remove each file.
for filePath in fileList:
    try:
        os.remove(filePath)
    except OSError:
        print("Error while deleting file")

Подробнее см. По этой ссылке инфо.

https://thispointer.com/python-how-to-remove-files-by-matching-pattern-wildcards-certain-extensions-only/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...