Databricks运行Delta流式写入报Input marker does not start with input path错误求解
错误
java.lang.IllegalArgumentException: Input marker does not start with input path!解析 错误含义
这个错误是Spark结构化流写入Delta格式时的路径校验异常:checkpoint目录中持久化存储的上一次任务写入目标路径标记,和本次任务传入的DELTA_FILE_LOCATION字符串不匹配,触发了Spark的路径一致性校验规则。
常见触发原因
- 复用了其他流任务的checkpoint目录:
CHECKPOINT_LOCATION对应的目录之前被其他写入路径不同的流任务使用过,checkpoint中记录的历史写入路径和当前路径不一致 - 同任务修改了写入路径的字符串格式:即使实际指向同一个存储位置,比如之前使用绝对路径
/dbfs/mnt/delta/tbl,本次改为挂载点简写dbfs:/mnt/delta/tbl,字符串匹配失败也会触发报错
修复方案
- 如果无需继承之前的流消费位点,直接删除
CHECKPOINT_LOCATION对应的整个checkpoint目录,重启任务即可,Spark会自动生成适配当前写入路径的全新checkpoint元数据 - 如果需要保留历史消费位点继续运行,可以手动修改checkpoint目录下
offsets、commits子目录中记录的写入路径字符串,和当前DELTA_FILE_LOCATION保持完全一致即可
规避建议
不同结构化流任务必须配置独立的checkpoint目录,禁止跨任务复用。如果同一任务需要调整写入目标路径,必须同步更换全新的checkpoint目录。
内容的提问来源于stack exchange,提问作者jencake
相关产品推荐
相关产品推荐

