Spark 是 运行 python 3.7.6,但 spark 上下文显示 python 2.7。如何使用 spark 上下文修复?
Spark is running python 3.7.6 but spark context is showing python 2.7. How to fix using the spark context?
我已经使用 sc.install_pypi_package("sagemaker==2.5.1")
安装了 sagemaker。但是,当我尝试导入 sagemaker 并且它指向 python2.7.
时出现以下错误
我检查了我的 EMR 主节点 运行 pyspark,那里的版本是 pyspark 2.4.5 运行 python 3.7.6.
然后我尝试升级我的 spark 上下文的 python 版本,但它说
"ValueError: Package already installed for current Spark context!"
所以我想让我尝试从 spark context 中卸载 python2.7 但我不这样做,说
"Not uninstalling python at /usr/lib64/python2.7/lib-dynload, outside
environment /tmp/1598628537004-0"
我做错了什么?我相信 sagemaker 导入失败是由于 spark 上下文引用 python2.7。我该如何解决这个问题?
参考此 link 并将 spark 上下文的 python 版本更新为 python3。这解决了问题:
%%configure -f
{ "conf":{
"spark.pyspark.python": "python3",
"spark.pyspark.virtualenv.enabled": "true",
"spark.pyspark.virtualenv.type":"native",
"spark.pyspark.virtualenv.bin.path":"/usr/bin/virtualenv"
}
}
我已经使用 sc.install_pypi_package("sagemaker==2.5.1")
安装了 sagemaker。但是,当我尝试导入 sagemaker 并且它指向 python2.7.
我检查了我的 EMR 主节点 运行 pyspark,那里的版本是 pyspark 2.4.5 运行 python 3.7.6.
然后我尝试升级我的 spark 上下文的 python 版本,但它说
"ValueError: Package already installed for current Spark context!"
所以我想让我尝试从 spark context 中卸载 python2.7 但我不这样做,说
"Not uninstalling python at /usr/lib64/python2.7/lib-dynload, outside environment /tmp/1598628537004-0"
我做错了什么?我相信 sagemaker 导入失败是由于 spark 上下文引用 python2.7。我该如何解决这个问题?
参考此 link 并将 spark 上下文的 python 版本更新为 python3。这解决了问题:
%%configure -f
{ "conf":{
"spark.pyspark.python": "python3",
"spark.pyspark.virtualenv.enabled": "true",
"spark.pyspark.virtualenv.type":"native",
"spark.pyspark.virtualenv.bin.path":"/usr/bin/virtualenv"
}
}