Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更新Mac上PyCharm中运行的pyspark使用的Java密钥库?_Python_Pyspark_Pycharm - Fatal编程技术网

Python 如何更新Mac上PyCharm中运行的pyspark使用的Java密钥库?

Python 如何更新Mac上PyCharm中运行的pyspark使用的Java密钥库?,python,pyspark,pycharm,Python,Pyspark,Pycharm,我在Mac上运行PyCharm 2018.2并执行pyspark程序。Spark安装在virtualenv中 我需要在pyspark脚本中使用外部JAR(特别是AWS s3 JAR),因此我使用以下内容来声明maven依赖性: import os os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages "org.apache.hadoop:hadoop-aws:2.7.3" pyspark-shell' conf = SparkConf() \ .

我在Mac上运行PyCharm 2018.2并执行pyspark程序。Spark安装在virtualenv中

我需要在pyspark脚本中使用外部JAR(特别是AWS s3 JAR),因此我使用以下内容来声明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检查器,它将HTTPS请求上的SSL证书交换给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检查器签署HTTPS响应时使用的SSL证书不受pyspark执行的JVM的信任

我有签署HTTPS响应的中间证书的.cer副本


在此特定情况下使用了哪个JVM(PyCharm中运行的python/pyspark)以及如何更新该JVM信任存储中的证书?

在调试器中运行程序,并在
sc=SparkContext(conf=conf)之后暂停该程序
然后运行
ps aux | grep java
,您将知道哪个
jvm
正在用于此

然后您应该为相同的设置密钥库。了解正确的JDK后,使用下面的链接设置密钥库


该软件包使用您的系统java,因此如果maven在您的办公环境中工作,那么它也应该工作?我的本地计算机上安装了多个jdk。知道我如何确定软件包使用的是哪一个吗?知道。在调试器中运行该程序,并在
sc=SparkContext(conf=conf)
之后暂停,然后运行
ps aux | grep java
以及使用哪个jvm感谢您的帮助。这应该是显而易见的;)。你想在这里抛出一个快速的答案,这样我就可以接受并给你代表-想要我自己回答吗?一旦我有了正确的JDK,这个问题显示了导入到keytool的步骤:感谢链接,用同样的方法更新了答案。希望您对token的其他查询也得到解决?