【发布时间】:2021-08-05 02:17:48
【问题描述】:
我一直在尝试从 juputer 笔记本(使用 jupyter 实验室)设置 PYSPARK_PYTHON 以使用特定的 conda env,但我找不到使其工作的方法,我找到了一些使用示例:
import os
os.environ['PYSPARK_PYTHON'] = "<the path>"
但它不起作用所以我也尝试了:
spark = pyspark.sql.SparkSession.builder \
.master("yarn-client") \
.appName(session_name) \
.config("spark.yarn.appMasterEnv.PYSPARK_PYTHON","<the path>") \
.enableHiveSupport() \
.getOrCreate(cluster=cluster)
sc = spark.sparkContext
sqlContext = SQLContext(sc)
但它从不使用指定路径中的指定python版本 ,问题是,配置是否可能被忽略?还需要在笔记本上做些什么吗?
我正在使用 yarn-client 模式,并且我正在使用 jupyter lab 的企业/企业实例,因此我无法使用 export 在 cli 上设置变量,因为服务器由另一个团队为公司广泛管理,所以我需要在 jupyter 启动期间使用与在 cli 中导出不同的东西来执行此操作。
【问题讨论】:
-
你能分享一下你是如何连接 Jupyter 和 PySpark 的吗?以及如何启动 Jupyter 服务器?
-
jupyter 和 pyspark 之间的连接是使用我发布的代码完成的: spark = pyspark.sql.SparkSession.builder \ .master("yarn-client") \ .appName(session_name) \ .config ("spark.yarn.appMasterEnv.PYSPARK_PYTHON","") \ .enableHiveSupport() \ .getOrCreate(cluster=cluster) sc = spark.sparkContext sqlContext = SQLContext(sc) 我不确定jupyter是如何由于我使用由另一个团队维护的公司服务器(我只是它的用户),服务器已启动,服务器的启动方法是否会受到影响?
-
可能。测试它是否有任何影响的一种方法是创建一个新笔记本,如果需要,选择 Spark 内核。在其中只运行一个单元格
spark。这是为了在 Jupyter 内核启动时测试 spark session 是否已经初始化。你介意测试一下并告诉我进展如何吗? -
好的,感谢您的帮助,我运行了它,我怀疑我的名字'spark'没有定义
标签: python pyspark jupyter-notebook