Как получить время последней модификации каждого файла, присутствующего в хранилище данных Azure, используя python в рабочей области блоков данных? - PullRequest
0 голосов
/ 04 октября 2019

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

files = dbutils.fs.ls ('/ mnt / blob')

для файлов в файлах: print (fi)

Вывод: -FileInfo (путь = 'dbfs: /mnt/blob/rule_sheet_recon.xlsx', name = 'rule_sheet_recon.xlsx', размер = 10843)

Здесь я не могу получить время последнего изменения файлов. Есть ли способ получить это свойство.

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

% sh ls -ls /dbfs / mnt / blob /

вывод: - всего 0

0 -rw-r - r-- 1 корневой корень 13577 сен 20 10:50 a.txt

0 -rw-r - r-- 1 корневой корень 10843 20 сентября 10:50 b.txt

1 Ответ

0 голосов
/ 01 ноября 2019

К сожалению, вы не можете получить информацию метаданных с помощью команды "dbutils.fs.ls".

Причина:

" dbutils.fs.ls"Последовательность, возвращаемая командой ls, содержит следующие атрибуты:

enter image description here

Примечание: Вы можете получить подробную информацию окаждая команда с помощью справки, например: dbutils.fs.help ("ls")

enter image description here

Вы можете получить дату последнего изменения для смонтированного файла вБлоки данных Azure, использующие python native sdk .

Вот пример кода для получения метаданных из BLOB-объекта Azure:

from azure.storage.blob import BlockBlobService
block_blob_service = BlockBlobService(account_name='accoutName', account_key='accountKey')
container_name ='containerName'
block_blob_service.create_container(container_name)
generator = block_blob_service.list_blobs(container_name)
for blob in generator:
    lastModified= BlockBlobService.get_blob_properties(block_blob_service,container_name,blob.name).properties.last_modified
    print("\t Blob name: " + blob.name)
    print(lastModified)

Надеюсь, это поможет.

...