Я запускаю PyCharm 2018.2 на Mac и запускаю программу pyspark. Искра была установлена в virtualenv.
Мне нужно использовать внешние jar (в частности, jar-файлы AWS s3) в моем скрипте pyspark, поэтому я использую следующее для объявления зависимости maven:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages "org.apache.hadoop:hadoop-aws:2.7.3" pyspark-shell'
conf = SparkConf() \
.setMaster("local[2]") \
.setAppName("pyspark-unittests") \
.set("spark.sql.parquet.compression.codec", "snappy")
sc = SparkContext(conf=conf)
В моей домашней сети это прекрасно работает.
В моей корпоративной сети между мной и Интернетом есть инспектор SSL, который обменивает SSL-сертификаты по HTTPS-запросам в Maven Central.
Это приводит к приведенному ниже сообщению об ошибке:
Server access error at url https://repo1.maven.org/maven2/joda-time/joda-time/maven-metadata.xml (javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target)
Я знаю, что это потому, что сертификаты SSL, с которыми инспектор SSL подписал ответ HTTPS, не являются доверенными для JVM, выполняемой pyspark.
У меня есть .cer копии промежуточных сертификатов, которые подписывают ответ HTTPS.
Какая JVM используется в этом конкретном случае (python / pyspark работает в PyCharm) и как я могу обновить сертификаты в хранилище доверенных сертификатов этой JVM?