Я использую записную книжку Azure DataBricks с библиотекой Azure, чтобы получить список файлов в хранилище BLOB-объектов.Эта задача запланирована, и кластер завершается после завершения работы и запускается снова с новым запуском.
Я использую библиотеку Azure 4.0.0 (https://pypi.org/project/azure/)
Иногда я получаю сообщение об ошибке:
- AttributeError: модуль 'lib' не имеет атрибута 'SSL_ST_INIT'
и очень редко также:
- AttributeError: библиотека cffi '_openssl'не имеет функции, константы или глобальной переменной с именем' CRYPTOGRAPHY_PACKAGE_VERSION '
Я нашел решение, как удалить библиотеку openssl или azure, перезапустить кластер и установить его снова, но перезапуск кластера может быть невозможен, поскольку онвозможно, придется обрабатывать более длинные задачи и т. д.
Я также пытался установить / обновить openSSL 16.2.0 в сценарии инициализации, но это не помогает и не вступает в конфликт с какой-либо другой библиотекой openSSL, которая по умолчанию находится в кластере Databricks.
Можно ли с ним что-нибудь сделать?
Есть код для получения списка файлов изХранение BLOB-объектов:
import pandas as pd
import re
import os
from pyspark.sql.types import *
import azure
from azure.storage.blob import BlockBlobService
import datetime
import time
r = []
marker = None
blobService = BlockBlobService(accountName,accountKey)
while True:
result = blobService.list_blobs(sourceStorageContainer, prefix = inputFolder, marker=marker)
for b in result.items:
r.append(b.name)
if result.next_marker:
marker = result.next_marker
else:
break
print(r)
Спасибо