/** * Read a text file from HDFS, a local file system (available on all nodes), or any * Hadoop-supported file system URI, and return it as an RDD of Strings. */ def textFile( path: String, minPartitions: Int = defaultMinPartitions): RDD[String] = withScope { assertNotStopped() hadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text], minPartitions).map(pair => pair._2.toString).setName(path) }
由spark的源码源码的注释可以知道,spark可以读取本地数据文件,但是需要在所有的节点都有这个数据文件(亲测,在有三个节点的集群中,只在master中有这个数据文件时执行textFile方法一直报找不到文件,
在另外两个work中复制这个文件之后,就可以读取文件了)
sc.textFile("file:///root/wc/sparkInput")
在idea中读取本地文件是由于本地环境中有hadoop的环境变量.在集群中如果需要加载本地的文件还不如传到hdfs上,然后从hdfs中读取数据.
(spark用的是1.6.1)
因为