spark入门知识(一)

原文:https://mp.csdn.net/postedit/51898334

第一篇:scala

注册、登录、云平台
速度比hadoop快100倍

spark平台可以使用的语言

java,scala,python,R
clusters(集群)

 

随着时间不停产生的数据——流数据

机器学习:python 和数学基础(考研必学)

GraphX:图,物与物的关系

     

spark用scala开发的

scala:函数式编程(区别于命令式编程、逻辑语言编程)

 

面向对象编程可将前三种语言综合起来

 

学习内容:

1、Mutation(突变、变化)

“引起变化的事物本身保持不变”

买scala教程

2、>scala 命令行
3、spark是一步一步进行计算的

      def 相当于宏定义

4、最后一条语句是返回类型(即返回类型可省略)

 

 

评估函数:求左边的参赛(从左到右),进行原样替换。形式参数用实际参数替换

call-by-value:

先求参数值,再将值赋给变量(缺点:对不存在的变量,进行了多余到了计算)

call-by-name:

x出现的时候在进行计算(先不计算整体带入)

eg:test(x:Int,y:Int)=x*x

 

x:Int

x:=>Int cbn

谓词:结果只有两种

x=x+1的问题怎么解决
shadow:val x=0

val result={val x=5

x*x

}+x

 

递归-高阶函数(递归的溢出的问题是可以解决的)

 

原样调用 伪递归  不会溢出  堆栈重用

递归函数一定要指明其返回类型(重要)

 

f:Int=>Int 整形到整形的映射的函数

箭头表示cbn

 

高阶函数

匿名函数的调用

sum(f,a,c)=sum(f)(a)(c)

伪递归的定义:最后一次调用一定是自己,不能加,不能乘

作用:用替换法替换

 

----------------------------------------------------

在网页上开发,或者在linix下

 

 

spark入门知识

[服务器]具有强大功能的pc(2-3万)

特点:价格高,硬件好

[机架}放满服务器(集群)

[hadoop]分布式存储系统(一张照片分成多分放到不同的机器上,主要针对大文件)

切割最少64M

 

spark contect (sc)负责把数据进行切分

数据分布以后叫RDD(保持不变)

 

distData.filter(_<10).collect()过滤掉>10的

数据在内存里面,所以很快。

不要汇总(会很慢)

 

从日志里面读取大量的信息

val lines=sc.textFile("hdfs://...“) //hdfs为分布式文件系统hadoop

val errors = lines.filter(_.startWith("ERROR")) //起始字母是不是error

//_.代表每一行,看每一行是否有错(_代表数据中的每一个)

//RDD的过滤方法,用一个谓词进行判断

val messages=errors.map(_.split("\t")).map(r=>r(1))//对每一个数据调用map方法

//split是分割的意思,有\t来分割

//hello=>hello(1)

//1、RDD为lines 文中的每一行

//2、RDD为errors 文中出现错误的行

//3、RDD为messags 错误的行中每个单词出现的次数

messages.cache() //放到内存,缓存起来

 

messages.filter(_.contains("mysql")).count() //在meessage里面找"mysql".不用去重

//4、RDD为只有mysql这个单词了,

//count()计数:数RDD中所有元素的个数

messages.filter(_.contains("php")).count()

//找一个日志文件 ,加载进去,把代码试一遍

 

理论知识:

spark与管理者

在每个节点的跑的程序叫worker

管理机器上跑的程序叫diver

diver驾驭了worker

map、reduce、filter(过滤 )在worker上面运行

sc在diver上面运行

 

把数据分发给不同的节点由 diver来完成

每个节点上分到了一部分数据

做filter时,每个节点都在进行

count()就是每个节点过滤完之后,再进行的汇总

 

spark两类型的函数、操作

transform/action

有一个RDD变成另一个RDD,叫做transform

(旧RDD保持不变)

 

filter 属于transform

一段数据上可以做很多次transform

transform结束后得到了一堆数据

对数据的处理叫做action,以得到结果

 

count属于action ,得到一个值

数据挖掘:经过无数次的transform,完了之后再施加action,得到想要的结果

 

程序收到一个action之后才会行动

接受命令的时候保持命令,action个才可以启动命令

(为了让各个节点同时进行)

(把清单列出来,一次全部行动)

2016/7/12

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Summer tree

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值