【问题标题】:Spark/Hadoop can't find file on AWS EMRSpark/Hadoop 在 AWS EMR 上找不到文件
【发布时间】:2017-03-25 06:00:57
【问题描述】:

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

有问题的行:

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 网站上的任何地方都找不到这方面的信息。

【问题讨论】:

  • 你愿意打印'hadoop fs -ls /user/hadoop/'的输出吗?

标签: python amazon-web-services hadoop apache-spark


【解决方案1】:

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

例如:hadoop fs -ls /home/hadoop

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

【讨论】:

  • 谢谢,这就是问题所在。
【解决方案2】:

我不知道是不是只有我一个人,但是当我尝试使用上述建议解决问题时,我的 EMR 中出现“路径不存在”错误。我只是在用户之前添加了一个“/”并且它起作用了。

file:///user/hadoop/wet0

感谢您的帮助!

【讨论】:

  • 这更适合作为对已接受答案的评论 - 事实上,它似乎提供了一种替代方案,而不是(显然非常重要的)改进。感谢分享信息!
猜你喜欢
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
相关资源
最近更新 更多