gpt4 book ai didi

apache-spark - 在 Pyspark/Jupyter 中设置 spark.local.dir

转载 作者:行者123 更新时间:2023-12-04 04:16:49 28 4
gpt4 key购买 nike

我正在使用 Jupyter 笔记本中的 Pyspark,并尝试将大型 Parquet 数据集写入 S3。
我收到“设备上没有剩余空间”错误。我四处搜寻,得知这是因为/tmp 已满。
我现在想编辑 spark.local.dir指向一个有空间的目录。
如何设置此参数?
我发现的大多数解决方案都建议在使用 spark-submit 时进行设置。但是,我没有使用 spark-submit,只是将它作为 Jupyter 的脚本运行。

编辑:我正在使用 Sparkmagic 来处理 EMR 后端。我认为 spark.local.dir需要在配置 JSON 中设置,但我不知道如何在那里指定它。
我尝试将其添加到 session_configs但它没有用。

最佳答案

答案取决于您的 SparkContext来自。

如果您使用 pyspark 启动 Jupyter :

PYSPARK_DRIVER_PYTHON='jupyter'\
PYSPARK_DRIVER_PYTHON_OPTS="notebook" \
PYSPARK_PYTHON="python" \
pyspark

那么当您在 Jupyter 中收到 Python 内核时,您的 SparkContext 已经初始化。因此,您应该将参数传递给 pyspark(在上述命令的末尾): --conf spark.local.dir=...
如果您正在构建 SparkContext在 Python

如果您的笔记本中有代码,例如:
import pyspark
sc = pyspark.SparkContext()

然后您可以在创建 Spark 上下文之前对其进行配置:
import pyspark
conf = pyspark.SparkConf()
conf.set('spark.local.dir', '...')
sc = pyspark.SparkContext(conf=conf)

从命令行配置 Spark:

也可以通过在 bash 中编辑配置文件来配置 Spark。您要编辑的文件是 ${SPARK_HOME}/conf/spark-defaults.conf .您可以按如下方式附加到它(如果它不存在则创建它):
echo 'spark.local.dir /foo/bar' >> ${SPARK_HOME}/conf/spark-defaults.conf

关于apache-spark - 在 Pyspark/Jupyter 中设置 spark.local.dir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092758/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com