首页 > 解决方案 > 为什么我无法在 EMR 上的 Spark scala 中打开本地文件

问题描述

我在工作中使用 AWS EMR。如果我启动 spark shell,我可以运行 scala 命令,但无法读取本地文件。

例如:

scala> val citi = spark.read.textFile("CitiGroup2006")
org.apache.spark.sql.AnalysisException: Path does not exist: hdfs://ip-10-99-99-99.ec2.internal:8020/user/hadoop/CitiGroup2006;

我尝试输入文件的完整路径,但我得到了同样的错误。该文件位于我启动 spark shell 的同一目录中。但是,它确实可以加载 scala 文件

:load hello.scala

为什么“加载”有效但 spark.read.textFile 无效?

标签: scalaamazon-web-servicesapache-sparkamazon-emr

解决方案


在 scala 上没有那么强。
但它看起来像是spark.read.file从 HDFS 读取的,我猜你的文件在 EMR 本地。
您可以使用以下命令查看 HDFS 上的文件:
$ hdfs dfs -ls
并使用-put check out hadoop 复制文件将本地文件系统文件夹复制到 HDFShadoop-common/FileSystemShell


推荐阅读