python - Databricks 群集未初始化 Azure 库,错误为 : module 'lib' has no attribute 'SSL_ST_INIT'

标签 python azure pyspark openssl databricks

我正在使用 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/

相关文章:

python - 在给定高度和值的情况下递归生成三角形格式的列表列表

Azure 数据工厂管道中的 Azure 自定义事件运行超时

azure - ReadDocumentAsync 的 CancellationToken

apache-spark - 有没有办法收集 pyspark 中嵌套模式中所有字段的名称

python - 什么相当于 scala.util.Try 在 pyspark 中?

python - 合并多个组 ID 以形成一个合并的组 ID?

python - 按住键 - Python Turtle

c# - 在 Visual Studio 2017 中构建和管理 Azure 函数

python - PySpark:如何在PySpark转换中指定dropna轴?

python - '如果' vs. `while` 到 `functools.partial.func`