我在工作中使用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不起作用?
在scala上不太强。但是它看起来像是从HDFS读取的spark.read.file
,我想您的文件位于EMR本地。您可以使用以下命令在HDFS上查看文件:$ hdfs dfs -ls
并使用-put
复制文件签出hadoop copy a local file system folder to HDFS和hadoop-common/FileSystemShell