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

PySpark使用dtreeviz可视化决策树分类时触发路径不存在报错

问题成因
  • 你运行的代码是dtreeviz官方示例笔记本中的测试专用代码,其中写的相对路径../../dtreeviz/testing/testlib/models/fixtures/spark_3_0_decision_tree_classifier.model/training_df指向的是官方仓库内部的测试资源,仅在完整拉取dtreeviz整个源码仓库、且代码运行工作目录和示例笔记本所在目录完全匹配时才能正常解析。按照官方安装指引安装的发布版dtreeviz包不会自带开发测试用的数据集、预训练模型这类资源,本地自然找不到对应路径。
  • 路径中的.model后缀和Parquet格式没有任何关联,只是官方给预训练测试模型的存储目录自定义的文件夹名。这个目录下同时存放了训练好的Spark决策树模型文件、以及对应的训练集Parquet数据(也就是你代码中要读取的training_df子目录),属于开发时的命名习惯,不是格式要求的特殊标识。
  • 报错中路径被解析到C:/Users/目录下,是因为你当前运行PySpark代码的工作目录默认在C盘用户文件夹下,相对路径会基于当前工作目录拼接,最终指向了不存在的位置。
可行解决方案
  • 优先使用自有数据和模型替换示例逻辑:dtreeviz的Spark可视化能力不依赖官方测试资源,只要传入你自己训练得到的DecisionTreeClassificationModel实例、对应训练集的DataFrame、特征列名列表、标签列名即可正常生成可视化结果。你可以直接把示例中读取测试Parquet、加载测试模型的代码段,替换成自己业务场景下读取数据、训练模型的逻辑,不需要强行匹配示例路径。
  • 如果需要完整跑通官方示例做功能验证,可以完整克隆dtreeviz整个源码仓库到本地,之后将代码运行的工作目录切换到仓库内的notebooks文件夹下再执行示例代码,此时相对路径可以正确匹配到仓库中自带的测试资源。注意不要单独下载单个示例笔记本文件,必须拉取完整的仓库目录结构,否则testing目录下的测试资源不会被下载到本地。
  • 补充说明:Spark读取Parquet数据时不限制目录命名规则,不管目录名带不带.model后缀,只要目录下存在_SUCCESS标识文件和对应的Parquet数据分片,就可以正常读取,不需要为了适配示例特意修改本地目录名。

内容的提问来源于stack exchange,提问作者Roaa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:24:35