本节书摘来自华章出版社《循序渐进学spark》一书中的第1章,第1.6节,作者 小象学院 杨 磊,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.6 使用spark shell开发运行spark程序
spark shell是一种学习api的简单途径,也是分析数据集交互的有力工具。
虽然本章还没涉及spark的具体技术细节,但从总体上说,spark弹性数据集rdd有两种创建方式:
从文件系统输入(如hdfs)。
从已存在的rdd转换得到新的rdd。
现在我们从rdd入手,利用spark shell简单演示如何书写并运行spark程序。下面以word count这个经典例子来说明。
1)启动spark shell: cd 进spark_home/bin,
执行命令。
./spark-shell
2)进入scala命令行,执行如下命令:
scala> val
file = sc.textfile("hdfs://localhost:50040/hellosparkshell")
count = file.flatmap(line => line.split(" ")).map(word =>
(word, 1)).reducebykey(_+_)
scala>
count.collect()
首先从本机上读取文件hellosparkshell,然后解析该文件,最后统计单词及其数量并输出如下:
15/09/29
16:11:46 info spark.sparkcontext: job finished: collect at <console>:17,
took 1.624248037 s
res5:
array[(string, int)] = array((hello,12), (spark,12), (shell,12), (this,1),
(is,1), (chapter,1), (three,1)