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

Databricks集群PDAL安装后OBJ转LAS失败问题求助

PDAL在Databricks Runtime 9.x中OBJ转LAS无输出文件但返回码为0的问题排查

问题现象

OBJ转PCD或文本格式正常,但转LAS时,执行pdal translate命令返回returncode=0,却未生成目标LAS文件。

环境配置

Dockerfile

FROM databricksruntime/standard:9.x

# Install miniconda
ENV CONDA_DIR /databricks/conda

RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-x86_64.sh -O ~/miniconda.sh && \
     /bin/bash ~/miniconda.sh -b -p /databricks/conda 

COPY env.yml /databricks/.conda-env-def/env.yml

RUN /databricks/conda/bin/conda env create --file /databricks/.conda-env-def/env.yml \
    && ln -s /databricks/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
RUN /databricks/conda/bin/conda config --system --set channel_priority strict \
    && /databricks/conda/bin/conda config --system --set always_yes True
    
ENV DEFAULT_DATABRICKS_ROOT_CONDA_ENV=dcs-minimal
ENV DATABRICKS_ROOT_CONDA_ENV=dcs-minimal

conda环境配置(env.yml)

name: dcs-minimal
channels:
  - conda-forge
dependencies:
  - python=3.8.8
  - pip=20.2.4
  - six=1.15.0
  - ipython=7.19.0
  - nomkl=3.0
  - numpy=1.19.2
  - pandas=1.1.5
  - traitlets=5.0.5
  - wheel=0.35.1
  - pdal 
  - python-pdal 
  - pip:
    - pyarrow==1.0.1

关键包版本

  • pdal: 2.4.3
  • python-pdal: 3.1.2

执行命令及结果

执行的Python代码:

result = subprocess.run(['pdal','translate','/dbfs/mnt/demo.obj','/dbfs/mnt/demo.las'],
                        stdout=subprocess.PIPE,
                        stderr=subprocess.STDOUT )

返回结果:

CompletedProcess(args=['pdal', 'translate', '/dbfs/mnt/demo.obj', '/dbfs/mnt/demo.las'], returncode=0, stdout=b'')

排查步骤

  1. 检查DBFS路径权限

    • 验证执行进程对/dbfs/mnt/目录的写入权限,可先尝试创建空文件测试:
      touch /dbfs/mnt/test_write.las
      
    • 若权限不足,调整挂载点权限或切换到/dbfs/tmp/等默认有权限的目录重试。
  2. 开启PDAL详细日志

    • 修改命令添加-v参数提升日志级别,获取执行细节:
      result = subprocess.run(['pdal','translate','-v','8','/dbfs/mnt/demo.obj','/dbfs/mnt/demo.las'],
                              stdout=subprocess.PIPE,
                              stderr=subprocess.STDOUT )
      print(result.stdout.decode('utf-8'))
      
    • 日志级别1-9可调,越高输出越详细,能定位LAS写入阶段的隐藏问题。
  3. 验证LAS驱动状态

    • 执行命令确认LAS驱动已加载:
      pdal drivers | grep las
      
    • 若驱动缺失,重新安装PDAL并确保conda-forge源的依赖完整。
  4. 测试本地文件系统转换

    • 将OBJ复制到本地目录(如/tmp/)执行转换,排除DBFS挂载问题:
      cp /dbfs/mnt/demo.obj /tmp/demo.obj
      pdal translate /tmp/demo.obj /tmp/demo.las
      ls -l /tmp/demo.las
      
    • 若本地转换成功,说明问题出在DBFS写入逻辑,需检查挂载配置或改用Databricks文件API操作。
  5. 检查OBJ文件有效性

    • 确认OBJ包含有效点云数据,LAS格式要求点云有坐标信息,若OBJ仅含网格面数据,PDAL可能无输出但返回成功:
      pdal info /dbfs/mnt/demo.obj
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:17:04