Scala 基础

一、启动

切换到 Spark 的根目录,使用 bin/spark-shell 进入 spark shell:

[root@ahdoop0 spark-1.3.0-bin-hadoop2.4]# ./bin/spark-shell
...
scala> 

启动的过程中会有如下的提示:

16/03/18 13:53:47 INFO Utils: Successfully started service 'SparkUI' on port 4042.
16/03/18 13:53:47 INFO SparkUI: Started SparkUI at http://hadoop0:4042

也即会在 4042 (视开启的终端的数目而定,开启的第一个终端端口号为 4040)的端口处开启 Spark 的 UI 用户界面。
不妨,我们在浏览器的地址栏输入:http://hadoop0:4042,验证是否启动成功:



二、basics

Quick Start

  • (0)退出

    scala> exit
  • (1)获取当前目录下的文件

    scala> val textFile = sc.textFile("README.md")
  • (2)输出

    scala> textFile.count()
                    # 输出行数
    scala> textFile.first()
                    # 输出第一行的内容
    scala> textFile.take(n)
                    # 输出前 n 行的内容
  • (3)过滤

    scala> textFile.filter(line => line.contains("spark")).collect
                        # 输出行中包含"Spakr"的所有行

三、word count

  • (1)先上传文本文件到 hdfs

    [root@hadoop0 hadoop-2.6.0-cdh5.4.0]# ./bin/hdfs dfs -mkdir -p /user/hadoop/spark
    [root@hadoop0 hadoop-2.6.0-cdh5.4.0]# ./bin/hdfs dfs -put wc.input /user/hadoop/spark
  • (2)统计(MapReduce)

    scala> val rdd = sc.textFile("hdfs://hadoop0:9000/user/hadoop/spark/wc.input")
    scala> val wc = rdd.flatMap(x => x.split(" ")).map(x => (x, 1)).reduceByKey((a, b)=>a+b) scala> wc.collect # 无参数的函数,在调用时,可以不加括号
  • (3)对结果进行排序

    scala> val wcsort = wc.sortByKey(true)
                        # true:表示升序
                        # false:表示逆序

你可能感兴趣的:(Scala 基础)