Spark Read.json 找不到文件

Posted

技术标签:

【中文标题】Spark Read.json 找不到文件【英文标题】:Spark Read.json cant find file 【发布时间】:2016-01-16 20:06:11 【问题描述】:

嘿,我在 AWS 上有 1 个主节点和 1 个从节点独立 Spark 集群。我的主目录有一个文件夹,名为 ~/Notebooks。这是我在浏览器中启动 jupyter 笔记本并连接 jupyter。我还有一个名为 people.json 的文件(简单的 json 文件)。

我尝试运行这段代码

from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext

conf = SparkConf().setAppName('Practice').setMaster('spark://ip-172-31-2-186:7077')
sc = SparkContext(conf=conf)

sqlContext = SQLContext(sc)

df = sqlContext.read.json("people.json")

当我运行最后一行时出现此错误。我不明白文件就在那里……有什么想法吗?-

Py4JJavaError:调用 o238.json 时出错。 :org.apache.spark.SparkException:作业因阶段失败而中止:阶段 4.0 中的任务 1 失败 4 次,最近一次失败:阶段 4.0 中丢失任务 1.3(TID 37,ip-172-31-7-160.us -west-2.compute.internal):java.io.FileNotFoundException:文件文件:/home/ubuntu/Notebooks/people.json 不存在

【问题讨论】:

你确定这个文件也在所有工作节点上吗? 哦,废话,我没有意识到它需要在工作节点上......那么它甚至需要在主节点上吗? 【参考方案1】:

确保文件在工作节点上可用。最好的方法是使用共享文件系统(NFS、HDFS)。阅读External Datasets documentation

【讨论】:

以上是关于Spark Read.json 找不到文件的主要内容,如果未能解决你的问题,请参考以下文章

Spark在本地运行但在YARN中运行时找不到文件

SparkContext 错误 - 找不到文件 /tmp/spark-events 不存在

Spark SQL表分区找不到文件

关于在Spark集群中读取本地文件抛出找不到文件异常的问题

关于在Spark集群中读取本地文件抛出找不到文件异常的问题

Spark提交:使用jar找不到表或视图