gpt4 book ai didi

python - 压缩包后 Pyspark 找不到合适的 TLS CA 证书

转载 作者:行者123 更新时间:2023-11-28 19:03:04 24 4
gpt4 key购买 nike

我已经从这个 pyspark-example-project 创建了一个 Pyspark 应用程序.在示例项目中,dependencies.zip 是一个依赖包,其中包含我的实际代码。我正在使用 requests用于将 spark-submit 作业的元数据发布到启用 https 的端点。

我提交的作业如下:spark-submit --master local[*] --py-files dependencies.zip job.py

这导致

OSError: Could not find a suitable TLS CA certificate bundle, while running spark-submit,
File "/private/var/folders/_2/4jk9zwf11yx6h93v9nyv284r0000gn/T/spark-2604a272-4da7-45e9-98a4-02110c71f4db/userFiles-1b562995-6006-47a1-8d98-5102449063fa/dependencies.zip/requests/adapters.py", line 407, in send
self.cert_verify(conn, request.url, verify, cert)
File "/private/var/folders/_2/4jk9zwf11yx6h93v9nyv284r0000gn/T/spark-2604a272-4da7-45e9-98a4-02110c71f4db/userFiles-1b562995-6006-47a1-8d98-5102449063fa/dependencies.zip/requests/adapters.py", line 226, in cert_verify
"invalid path: {0}".format(cert_loc))
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: /private/var/folders/_2/4jk9zwf11yx6h93v9nyv284r0000gn/T/spark-2604a272-4da7-45e9-98a4-02110c71f4db/userFiles-1b562995-6006-47a1-8d98-5102449063fa/dependencies.zip/certifi/cacert.pem

虽然 boto3 可以很好地处理压缩存档中的依赖项,dependencies.zip/boto3

更新 1

我试过记录 certifi.where(),它给出了日志中提到的相同路径,即

/private/var/folders/_2/4jk9zwf11yx6h93v9nyv284r0000gn/T/spark-2604a272-4da7-45e9-98a4-02110c71f4db/userFiles-1b562995-6006-47a1-8d98-5102449063fa/dependencies.zip/certifi/cacert.pem

最佳答案

这里的问题是 requests 将尝试读取 CA 证书作为其 SSL 验证步骤的一部分,并期望这些证书是常规文件。在您的例子中,证书是压缩的,如对 certifi.where() 的调用所暗示的那样。

请注意 requests#4371旨在解决此类案件。在您撰写帖子时,此修复程序应该已经在 master 中,因此您可能使用的是旧版本的 requests

解决方法是在需要 SSL 验证时指定解压缩证书的路径。使用 boto3,您可以应用与 requests 相似的解决方案:

import certifi
from requests.utils import extract_zipped_paths

cert_path = extract_zipped_paths(certifi.where())
ssm = boto3.client("ssm", verify=cert_path)

关于python - 压缩包后 Pyspark 找不到合适的 TLS CA 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com