无HDFS的Spark独立集群加载CSV:解决文件未分发至Worker问题
Spark独立集群CSV文件分发至Worker节点的解决办法
用绝对路径指定文件
启动pyspark时,--files参数必须传入Master节点本地的绝对路径,比如:pyspark --master spark://ip-address:7077 --files /home/your-user/data.csv代码中调用
addFile时同样要用绝对路径,避免相对路径导致的文件定位失败。通过SparkFiles获取Worker端文件路径
Worker节点上的文件会被Spark存放在临时目录,不能直接使用原路径读取,必须通过SparkFiles.get()获取正确路径,示例代码:from pyspark import SparkFiles # 读取CSV时用SparkFiles返回的路径 df = spark.read.csv(SparkFiles.get("data.csv"), header=True)检查文件权限
确保Master节点上的data.csv对所有Worker节点的Spark运行用户(通常是spark用户)有可读权限,可执行以下命令调整:chmod 644 /home/your-user/data.csv验证文件分发状态
登录Master节点的Spark UI(默认地址http://master-ip:8080),找到对应应用的Stages页面,查看任务日志确认文件是否成功上传;也可以到Worker节点的/tmp/spark-*临时目录下手动检查文件是否存在。
内容的提问来源于stack exchange,提问作者reysand
相关产品推荐
相关产品推荐

