繁体   English   中英

Spark/Hadoop 在 AWS EMR 上找不到文件

[英]Spark/Hadoop can't find file on AWS EMR

我正在尝试使用 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 网站上的任何地方都找不到关于此的信息。

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

例如:hadoop fs -ls /home/hadoop

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

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

file:///user/hadoop/wet0

感谢您的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM