spark

Posted GJS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark相关的知识,希望对你有一定的参考价值。

Spark 20160705  小记:

 

mac安装过程:

(1)安装java,配置环境变量(简单)

(2)安装scale,配置环境变量(直接下载解压,文件目录添加到HOME,简单)

 (3)   安装spark,下载解压,进入目录编译,sbt编译(稍微配置一下路径即可,简单,不过要编译很久,可下载编译好的)

网上可容易查找配置步骤,没难度。



RDD是spark的抽象数据结构类型,现在RDD已经DataFrame API代替,不过RDD是spark的核心关键。在spark里面,任何数据都是被表示为RDD。


spark在执行过程也是RDD->RDD->RDD->result。spark的过程其实就是讲数据转为RDD然后对RDD进行一系列的相应的转换,操作。


说明:

RDD:弹性分布式数据集,其实我感觉就是一个数据结构而已,里面存了数据,我们可以认为是一个数组,有所不同的是,这个数组是分区存放的,可以分区并行的。



1.创建RDD:

(1)从集合(数组)  parallelize(list[1,2,3,4,5])

(2)从外部文件(hdfs,普通文件系统)textFile(filePath)


RDD:包括  transform    ations 两种操作类型

转化,动作。

转化:就是从一个rdd变成另外一个rdd,并且会记住上次rdd,实际不执行,叫惰性转换。

          就看做是一个指针,记住了这些该做的操作可是没做,留着以后一起做。

动作:action阶段才会执行代码。value值。


Transform:

比如map,filter这些

Action:

count(),collection() 这些


2.运行spark,可以使用java python scala。

先使用scala的命令行来熟悉一下提供的API

API:

Transform:

Map(func):

     对RDD中的每个数据元素执行一个函数,产生一个新的RDD。和hadoop里面的map一样意思。map(x=>x*2)这边要说明,map只接受KV格式的RDD

MapValue:

    输入对应kv中的v,k保证不变,对v进行操作,组成一个新kv

Filter(func):

    对元素进行过滤,每个元素应用f函数,返回值为true的在rdd保留。

Distinct:

    去重


Action:

Reduce(func):

   reduce就是规约嘛,两两前后规约。[1,2,3,4,5,6,7]    1+2=3   3+3=6 6+4=10 sum

和hadoop里面的reduce的对应的是reducebykey。规约相同key的数据。

collect()  

   以数组形式 返回数据集的所有元素

count()

  返回数据集的个数

first()

take(n) :    top n




持久化RDD:

   spark可以持久化一个RDD,就是可以把一个数据集保存或者缓存到内存,使得之后用到这个数据集的时候速度非常快。







以上是关于spark的主要内容,如果未能解决你的问题,请参考以下文章

SparkSpark Streaming

SparkSpark ShuffleSpark SQL 及 Spark MLlib

SparkSpark之Transformation和Action

SparkSpark的Shuffle机制

sparkspark sql

SparkSpark一些面试题