2016-11-11 87 views
1

我正尝试使用python spark库在Amazon EMR上读取文本文件。该文件位于主目录(/ home/hadoop/wet0),但spark似乎无法找到它。Spark/Hadoop无法在AWS EMR上找到文件

线问题:

lines = spark.read.text(sys.argv[1]).rdd.map(lambda r: r[0]) 

错误:

pyspark.sql.utils.AnalysisException: u'Path does not exist: hdfs://ip-172-31-19-121.us-west-2.compute.internal:8020/user/hadoop/wet0;' 

文件是否必须在一个特定的目录?我无法在AWS网站上的任何位置找到有关此信息。

+1

你会打印'hadoop fs -ls/user/hadoop /'的输出吗? – eliasah

回答

1

如果它在本地文件系统中,URL应该是file:// user/hadoop/wet0 如果它在HDFS中,那应该是一个有效的路径。通过Hadoop fs命令用来看看

例如:Hadoop的FS -ls /家庭/ Hadoop的

一个想看看,你说这是在“/家/ Hadoop的”,但在错误的路径是“/ user/hadoop”。确保你没有在命令行中使用〜,因为bash会在spark看到它之前进行扩展。最好使用完整路径/ home/hadoop

+0

谢谢,这是问题所在。 – NmdMystery