我正在使用 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,但它没有帮助,并且开始与默认情况下 Databricks 集群中的另一个 openSSL 库发生冲突
我可以用它做什么吗?
有从 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)
谢谢
最佳答案
此问题的解决方案是将 Azure 库降级到 3.0.0。
Azure v4 似乎与 Databricks 中的一些初始库发生冲突。
关于python - Databricks 群集未初始化 Azure 库,错误为 : module 'lib' has no attribute 'SSL_ST_INIT' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54984230/