Apache Zeppelin给出java.io.FileNotFoundException,尽管该位置存在文件

问题描述 投票:0回答:1

我正在尝试创建一个非常简单的Zeppelin笔记本,它可以读取csv文件并对文件进行分析。但是,我遇到了一个非常奇怪的错误。尽管ls命令中显示了该文件,但是当我尝试将其读取为read.csv时,却得到了java.io.FileNotFoundException

[ls命令显示bank.csv文件(从顶部起第4个)enter image description here

但是在尝试读取文件时出现异常。enter image description here

apache-spark apache-zeppelin
1个回答
0
投票

在本地/独立的Zeppelin安装中...

[默认情况下,Zeppelin笔记本(和底层的Spark堆栈)很可能配置为默认情况下在HDFS中查找相对文件路径。

因此,您可能需要使用绝对文件路径,并指出您正在使用文件系统。

data = spark.csv.read("file:///data/your_path/banks.csv")

在集群齐柏林飞艇中安装

如果笔记本连接到安装了Spark的集群,那么访问本地文件系统不是一个好主意(您必须将文件手动部署到集群中的每个节点,使其保持同步...)...这就是为什么HDFS是为。

所以您最好的选择就是利用它。将文件放在HDFS存储器中的某个位置,然后通过hdfs从spark加载它。

在您的外壳中:

hdfs dfs -put /file_system_path/banks.csv "/user/zeppelin/banks.csv"

请注意,可放置HDFS文件的实际路径将根据您的集群安装而有所不同。

然后,Spark应该能够加载它:

spark.csv.read("/user/zeppelin/banks.csv")
© www.soinside.com 2019 - 2024. All rights reserved.