spark2.0 翻译:Quick Start 快速开始

来源:互联网 发布:简约博客网站源码 编辑:程序博客网 时间:2024/05/18 01:16

实话实说,建议你们直接看这个网址:http://www.apache.wiki/display/Spark
他们团队翻译的很好,以后我就不在自己博客献丑了哦。

  1. spark编译包下载解压及JDK环境配置
    -首先先去下载spark编译好的包,http://spark.apache.org/downloads.html
    由于spark不依赖hadoop而运行,所以我们此处可以下载任意hadoop编译版本的spark,之后解压
    -接下来下载jdk并配置JAVA_HOME
  2. 使用spark shell进行交互式操作
    1).基本用法
    spark shell提供了简单方式来学习api,以及非常好用的工具交互式地去分析数据。可以使用scala(运行在java虚拟机上并且可以很好地调用java的各种库)或者python。本文只使用scala哦
    在spark解压目录下执行:

    ./bin/spark-shell

    spark的主要抽象是一个叫做弹性数据集(RDD)的分布式的事物集合,RDDs从hadoop的格式化输入(hdfs的文件)或者由其他RDDs转化而来。接下来就使用spark目录的README文件创建一个RDD

    scala> val textFile = sc.textFile(“README.md”)
    textFile: org.apache.spark.rdd.RDD[String] = README.md MapPartitionsRDD[1] at textFile at :24

    这样我们由一个文件生成了一个spark的RDD。
    RDDs包含action行为操作(统计等操作的)和 transformation转换操作(生成新的RDDs)。接下来我们使用一些action操作。

    scala> textFile.count()
    res0: Long = 99

    值得一提的是我们在spark-shell的命令行窗口里可以使用tab进行命令补全提示,包括actions的提示,这里我们统计了一下文件的行数,共99行。我们还可以输出文件的第一行内容,格式如下:

    scala> textFile.first()
    res1: String = # Apache Spark

    接下来,我们使用transformation转换来返回这个文件内容子集的一个新的RDD:

    scala> val linesWithSpark = textFile.filter(line => line.contains(“Spark”))
    linesWithSpark: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at filter at :26

    我们对textFile的RDD执行过滤的转换,获取其中包含Spark关键字的行的RDD集合。我们还可以将transformation与action一块用

    scala> textFile.filter(line => line.contains(“Spark”)).count()
    res2: Long = 19

    2)RDD的更多操作
    RDDs的action行为和transformations转换可以被应用到更加复杂的计算中。比如我们现在要获取一行最多有多少单词:

    scala> textFile.map(line => line.split(” “).size).reduce((a, b) => if (a > b) a else b)
    res4: Long = 15

    第一步将每行映射成一个整数,并创建成一个新的RDD。reduce被调用,查找出最大的数值。

1 0
原创粉丝点击