我正在pyspark中运行一个python脚本,出现以下错误:namererror:name'spark'未定义
我查了一下,发现原因是 spark.dynamicAllocation.enabled
还不允许。
根据spark的文件(https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-dynamic-allocation.html#spark_dynamicallocation_enabled): spark.dynamicAllocation.enabled
(默认值: false
)控制是否启用动态分配。假设 spark.executor.instances
未设置或为0(这是默认值)。
因为默认设置是 false
,我需要更改Spark设置以启用 spark.dynamicAllocation.enabled
.
我用brew安装了spark,并且没有更改其配置/设置。
如何更改设置并启用 spark.dynamicAllocation.enabled
?
谢谢。
5条答案
按热度按时间yeotifhr1#
问题:如何更改设置并启用spark.DynamicLocation.enabled?
有3种方法可以实现这一点。
1) 修改以下中提到的参数
spark-defaults.conf
2) 从--conf发送以下参数spark-submit
3) 通过编程指定动态分配的配置,如下所示。从程序上来说,你可以这样做,你可以这样做。
kx1ctssn2#
有几个地方可以设置。如果要按作业启用,请在每个应用程序中设置以下内容:
如果要为所有作业设置if,请导航到spark.conf文件。在hortonworks发行版中
将该设置添加到spark-defaults.conf中,就可以开始了。
yqyhoc1h3#
除了前面的回答,所有提到的配置可能无法工作,因为解释器设置(如果您使用齐柏林飞艇)。我使用livy,它的默认设置覆盖dynamicallocation参数。
j91ykkif4#
这个问题也会影响使用其他资源进行的spark安装,例如用于在amazonweb服务上安装的spark-ec2脚本。在spark文档中,需要设置spark_home/conf/spark-defaults.conf中的两个值:
看这个:https://spark.apache.org/docs/latest/configuration.html#dynamic-分配
如果您的安装在spark\u home/conf中有一个spark-env.sh脚本,请确保它没有以下行,或者它们被注解掉了:
ubby3x7f5#
可以使用以下类似命令在pyspark中通过笔记本设置配置参数: