我是scala / spark / hadoop的新手,我已经挣扎了5个小时才能在spark doc上运行示例,而且似乎无法找到我的文件:
[error] (run-main-0) org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/home/coudra_c/.bashrc
以下是产生错误的代码:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object FinalProject {
def main(args: Array[String]) {
val logFile = "hdfs://localhost:9000/home/coudra_c/.bashrc" // Should be some file on y\
our system
val conf = new SparkConf().setAppName("Simple Application").setMaster("local[2]").set("\
spark.executor.memory","1g")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
但是当我运行spark-shell并执行以下行时:
val data = sc.textFile("hdfs://localhost:9000/home/coudra_c/.bashrc", 2).cache()
我没有错误。
我在示例中使用了sbt,配置是:
scalaVersion := "2.11.7",
version := "0.1.0-SNAPSHOT"
name := "Final Project",
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.3"
请问我是否忘了告诉任何重要内容,谢谢你的帮助。
编辑:
这是hdfs ls命令的结果。 coudra_c @ PC-Colin:〜/ Documents / spt $ hdfs dfs -ls /home/coudra_c/.bashrc -rw-rw-rw- 1 coudra_c supergroup 4287 2017-01-05 21:31 /home/coudra_c/.bashrc
请注意,由于我不了解延迟绑定,因此它在spark shell和.jar中都不起作用。
评论表明找不到core-site.xml,但即使我查看" file://home/coudra_c/.bashrc"也找不到该文件。甚至" /home/coudra_c/.bashrc"。