You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M3芯片macOS下PySpark pandas_udf致Python Worker崩溃求助

解决方案:M3芯片macOS下PySpark pandas_udf触发EOFError

针对你在M3芯片macOS虚拟环境中运行PySpark时,调用pandas_udf触发EOFError的问题,可尝试以下几种解决方法:

1. 强制Spark使用虚拟环境中的Python解释器

Spark Worker可能默认调用系统Python而非虚拟环境版本,导致依赖不匹配。在代码开头添加环境变量设置:

import os
# 替换为你的虚拟环境Python路径
os.environ["PYSPARK_PYTHON"] = "/Users/monir/Documents/work/image-inference/.venv/bin/python"
os.environ["PYSPARK_DRIVER_PYTHON"] = "/Users/monir/Documents/work/image-inference/.venv/bin/python"

或在终端运行脚本前执行:

export PYSPARK_PYTHON="/Users/monir/Documents/work/image-inference/.venv/bin/python"
export PYSPARK_DRIVER_PYTHON="/Users/monir/Documents/work/image-inference/.venv/bin/python"

2. 降低PyArrow版本

高版本PyArrow(如17.0.0)与PySpark 3.5.2在Apple Silicon架构下存在兼容性问题,将PyArrow降级至14.0.2:

pip install pyarrow==14.0.2 --force-reinstall

3. 更换兼容的Java版本

Java 22版本过于超前,Spark 3.5.2官方推荐使用Java 8或11。通过Homebrew安装OpenJDK 11:

brew install openjdk@11

设置JAVA_HOME环境变量:

export JAVA_HOME="/usr/local/opt/openjdk@11"
export PATH="$JAVA_HOME/bin:$PATH"

之后重新运行PySpark脚本。

4. 禁用Spark Worker重用

Worker进程重用可能导致缓存兼容性问题,在SparkSession配置中添加:

spark = (SparkSession.builder.appName("InferenceValidation")
         .config("spark.driver.memory", "8g")
         .config("spark.executor.memory", "8g")
         .config("spark.sql.execution.arrow.pyspark.enabled", "false")
         .config("spark.sql.execution.arrow.pyspark.fallback.enabled", "true")
         .config("spark.python.worker.reuse", "false")  # 禁用worker重用
         .getCreate())

内容的提问来源于stack exchange,提问作者Md. Moniruzzaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:57:01