循序渐进学Spark
上QQ阅读APP看书,第一时间看更新

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")
        scala> val 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)