scala - 如何在 sc.textFile 中加载本地文件,而不是 HDFS

标签 scala apache-spark

我正在关注伟大的spark tutorial

所以我尝试在 46m:00s 加载 README.md 但失败了,我正在做的是:

$ sudo docker run -i -t -h sandbox sequenceiq/spark:1.1.0 /etc/bootstrap.sh -bash
bash-4.1# cd /usr/local/spark-1.1.0-bin-hadoop2.4
bash-4.1# ls README.md
README.md
bash-4.1# ./bin/spark-shell
scala> val f = sc.textFile("README.md")
14/12/04 12:11:14 INFO storage.MemoryStore: ensureFreeSpace(164073) called with curMem=0, maxMem=278302556
14/12/04 12:11:14 INFO storage.MemoryStore: Block broadcast_0 stored as values in memory (estimated size 160.2 KB, free 265.3 MB)
f: org.apache.spark.rdd.RDD[String] = README.md MappedRDD[1] at textFile at <console>:12
scala> val wc = f.flatMap(l => l.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://sandbox:9000/user/root/README.md
    at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:285)

如何加载 README.md

最佳答案

尝试明确指定sc.textFile("file:///文件路径/")。设置Hadoop环境时出现此错误。

SparkContext.textFile 在内部调用 org.apache.hadoop.mapred.FileInputFormat.getSplits,如果 schema 为缺席的。该方法读取Hadoopconf的“fs.defaultFS”参数。如果设置HADOOP_CONF_DIR环境变量,该参数通常设置为“hdfs://...”;否则“文件://”。

关于scala - 如何在 sc.textFile 中加载本地文件,而不是 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27299923/

相关文章:

scala - Kilim 与 Scala : is it possible and as mature as more "standard" Scala concurrency approaches?

generics - Scala参数化类型问题与返回相同类型的实例

scala - Intellij CE 2018.2 + docker 容器中的 SBT : Remote debug breakpoints not working

scala - 将 ArrayBuffer 转换为 DataFrame 中的 HashSet 到 Hive 表中的 RDD 时的 GenericRowWithSchema 异常

apache-spark - 调试 python-spark 代码的最佳实践

scala - 拉出具有依赖关系的无形多态函数

scala - spark-shell 无法解析以点/句点开头的 Scala 行

json - 从 spark 中保存压缩的 json

apache-spark - 我们在yarn cluster中运行时在哪里可以看到spark输出控制台

apache-spark - Spark magic 输出提交器设置无法识别