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

Spark集群运行作业时出现FileNotFound问题求助

问题分析与解决方案

核心问题:文件路径处理错误

你代码里的file_path = "file://"+file是错误的,原因如下:

  • spark.sparkContext.addFile(url)会将远程文件分发到所有Worker节点的临时目录,SparkFiles.get("cities_data_bank.csv")直接返回该文件在Executor本地的绝对路径,不需要额外添加file://前缀。
  • 当你用file://前缀时,Spark的read API会尝试从Driver节点的本地文件系统读取文件,而Driver所在容器(或提交机器)中并没有这个文件,因此抛出FileNotFound错误。

修复后的代码

修改读取文件的逻辑即可:

spark = SparkSession.builder \
        .appName("Api-app") \
        .getOrCreate()
url = "https://gist.githubusercontent.com/aakashjainiitg/dbb668c58839d68d7903f508bf55043c/raw/1feec07802b4f53aceac450fa1aee5a87d9276e0/cities_data_bank.csv"
spark.sparkContext.addFile(url)
file = SparkFiles.get("cities_data_bank.csv")
# 直接使用SparkFiles返回的路径,无需拼接file://
df = spark.read.format("csv").option("header", "true").load(file)
df.show()
spark.stop()

额外优化验证点

  1. Worker节点网络检查:进入任意Worker容器执行curl <你的CSV文件URL>,确认能正常下载文件,避免网络不通导致文件未成功分发。
  2. Master地址优化:提交命令中的spark://9e4ebff1f71b:7077可替换为spark://spark-master:7077(Docker Compose中服务名可直接解析),避免容器重启后IP变化引发的连接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:30:01