2016-11-11 105 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