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

Python3.10+PySpark环境下加载LightGBM库失败问题求助

问题:PySpark中LightGBM回归器/分类器加载失败

环境信息

  • PySpark版本:3.2.1
  • Python版本:3.10.0
  • Py4j版本:0.10.9.5
  • Spark JAR包:com.microsoft.azure:synapseml_2.12:0.11.0

错误信息

java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/dz/mc23060n2kq52djyhcxl9kmh0000gp/T/mml-natives17452036633252549823/lib_lightgbm.dylib

复现步骤

  • 在Python 3.10.0环境中,结合PySpark DataFrame使用LightGBM回归器或分类器
  • 触发上述错误

已尝试方案

对已安装的libomp创建符号链接,问题仍未解决

详细错误栈

py4j.protocol.Py4JJavaError: An error occurred while calling o5147.fit.
E                   : java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/dz/mc23060n2kq52djyhcxl9kmh0000gp/T/mml-natives17452036633252549823/lib_lightgbm.dylib
E                       at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
E                       at java.base/java.lang.Runtime.load0(Unknown Source)
E                       at java.base/java.lang.System.load(Unknown Source)
E                       at com.microsoft.azure.synapse.ml.core.env.NativeLoader.loadLibraryByName(NativeLoader.java:66)
E                       at com.microsoft.azure.synapse.ml.lightgbm.LightGBMUtils$.initializeNativeLibrary(LightGBMUtils.scala:33)
E                       at com.microsoft.azure.synapse.ml.lightgbm.LightGBMBase.train(LightGBMBase.scala:37)
E                       at com.microsoft.azure.synapse.ml.lightgbm.LightGBMBase.train$(LightGBMBase.scala:36)
E                       at com.microsoft.azure.synapse.ml.lightgbm.LightGBMRegressor.train(LightGBMRegressor.scala:39)
E                       at com.microsoft.azure.synapse.ml.lightgbm.LightGBMRegressor.train(LightGBMRegressor.scala:39)
E                       at org.apache.spark.ml.Predictor.fit(Predictor.scala:151)
E                       at org.apache.spark.ml.Predictor.fit(Predictor.scala:115)
E                       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
E                       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
E                       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
E                       at java.base/java.lang.reflect.Method.invoke(Unknown Source)
E                       at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
E                       at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
E                       at py4j.Gateway.invoke(Gateway.java:282)
E                       at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
E                       at py4j.commands.CallCommand.execute(CallCommand.java:79)
E                       at py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)
E                       at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
E                       at java.base/java.lang.Thread.run(Unknown Source)

补充说明

  • 问题疑似与Python 3.10.0环境下加载LightGBM库有关
  • 已确认指定路径下存在lib_lightgbm.dylib文件

解决思路与建议

1. 切换JDK版本

SynapseML 0.11.0与JDK 8兼容性更好,高版本JDK(如11+)在加载本地库时可能有权限或兼容性问题。将JDK切换到OpenJDK 8或Oracle JDK 8后重试。

2. 手动指定LightGBM本地库路径

避免依赖自动提取的临时文件,手动下载对应macOS版本的lib_lightgbm.dylib,通过环境变量告知SynapseML:

export SYNAPSEML_LIGHTGBM_LIBRARY_PATH=/自定义路径/lib_lightgbm.dylib

或在Python代码中设置:

import os
os.environ['SYNAPSEML_LIGHTGBM_LIBRARY_PATH'] = '/自定义路径/lib_lightgbm.dylib'

3. 升级SynapseML版本

0.11.0版本可能存在Python 3.10适配问题,升级到0.12.0及以上版本:

pip install synapseml --upgrade

同时更新Spark JAR包到对应版本,例如com.microsoft.azure:synapseml_2.12:0.12.2

4. 检查本地库依赖

使用otool命令检查lib_lightgbm.dylib的依赖项是否缺失:

otool -L /var/folders/dz/mc23060n2kq52djyhcxl9kmh0000gp/T/mml-natives17452036633252549823/lib_lightgbm.dylib

若发现缺失libomp.dylib等依赖,将依赖库复制到lib_lightgbm.dylib所在目录,或添加依赖库路径到DYLD_LIBRARY_PATH:

export DYLD_LIBRARY_PATH=/依赖库所在目录:$DYLD_LIBRARY_PATH

5. 调整Python/PySpark版本

确认PySpark 3.2.1与Python 3.10的适配性,可尝试降级Python到3.9,或升级PySpark到3.3.x版本后测试。

内容的提问来源于stack exchange,提问作者Sumukha G C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:17:34