文章以wordCount案例展开:
(1) val lines = sc.textFile(“”)
textFile()算子,返回元组对,其中,K为每一行的偏移量offset ,V为每一行的文本
/**
* 从HDFS上读取一个文本文件,一个本地文件系统(可用在所有节点)
* 或者任何hadoop支持的文件系统的URI,最终返回字符串形式的RDD
*
* @param path 在受支持的文件系统上的文本文件路径
* @param minPartitions 建议产生的RDD的最小分区数
* @return 文本文件行的RDD
*/
def textFile(
path: String,
minPartitions: Int = defaultMinPartitions): RDD[String] = withScope {
assertNotStopped()
/**
* hadoopFile()方法 返回一个HadoopRDD extends RDD[(K, V)]
* 其中,K为每一行的偏移量offset ,V为每一行的文本
* map()处理,取出V 返回MapPartitionsRDD
*/
hadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text],
minPartitions).map(pair => pair._2.toString).setName(path)
}
hadoopFile()方法,返回(K,V)元组的HadoopRDD
/*