Standalone Spark 4.0读取Parquet文件时连接异常求助
问题分析与解决建议
核心原因
错误指向连接vm-name.internal.cloudapp.net:9001失败,这是因为Spark默认会读取Hadoop配置中的HDFS地址,但你并未部署HDFS服务,或是Spark的文件访问配置未正确指向本地文件系统。
解决步骤
1. 强制使用本地文件系统读取文件
读取文件时在路径前添加file://前缀,明确告诉Spark使用本地文件系统,而非尝试连接HDFS:
# 替换为实际绝对路径,示例以Spark安装在/opt/spark为例 UsersDF=spark.read.load("file:///opt/spark/examples/src/main/resources/users.parquet","parquet") UsersDF.show()
2. 全局配置Spark默认文件系统
若不想每次都手动加前缀,可修改Spark配置文件持久化生效:
- 进入Spark安装目录的
conf文件夹,复制spark-defaults.conf.template并重命名为spark-defaults.conf - 在文件中添加以下配置:
spark.hadoop.fs.defaultFS file:/// - 重启Spark Standalone集群,让配置生效
3. 修复主机名解析问题
错误中出现的vm-name.internal.cloudapp.net可能存在解析异常:
- 执行
ping vm-name.internal.cloudapp.net,检查是否能解析到VM本地IP(192.168.2.5) - 若解析失败,编辑
/etc/hosts文件,添加一行:192.168.2.5 vm-name.internal.cloudapp.net vm-name
4. 确认文件实际存在
验证目标parquet文件确实在VM本地:
# 替换为实际路径 ls -l /opt/spark/examples/src/main/resources/users.parquet
若文件不存在,需从Spark安装包中复制示例文件,或自行创建测试用parquet文件
内容的提问来源于stack exchange,提问作者Ziggy
相关产品推荐
相关产品推荐

