这是命令行的简单操作案例,借用spark里面的API:flatMap、reduceByKey来实现,步骤如下:
1)启动spark shell:
./spark-shell
注:spark shell 是spark自带的一个快速开发工具,在spark目录下bin目录里面
2)读入需要处理的单词文件
val file = sc.textFile("file:///home/hadoop/data/hello.txt")
3)将文件中的每一行单词按照分隔符(这里是空格)分隔
val a = file.flatMap(line => line.split(" "))
4)给每个单词计数为1
val b = a.map(word => (word,1))
或者:val b = a.map((_,1))
5)统计相同单词的数量
val c = b.reduceByKey(_ + _)
或者:val c = b.reduceByKey((A,B)=>(A+B))
合并成一行代码:
sc.textFile("file:///home/hadoop/data/hello.txt").flatMap(line => line.split(" ")).map(word => (word,1)) .reduceByKey(_ + _).collect
谢谢