阅读路线:

  • Hadoop与Spark比较
  • Spark的安装
  • Spark知识点

一、Hadoop与Spark比较

1.简单的比较

刚开始学习Spark的时候,自己总是会想当然的理解两者之间的关系。Hadoop和Spark的处理任务有很多是一样的,比如说他们都是有数据计算处理的功能,但是在一些方面又并不相互重叠,比如说,Spark没有文件管理功能,因而必须依赖Hadoop分布式文件系统(HDFS)或另外某种解决方案。实际上,在Hadoop的项目页面上,Spark就被列为是一个模块。Spark有自己的页面,因为虽然它可以通过YARN(另一种资源协调者)在Hadoop集群中运行,但是它也有一种独立模式。它可以作为 Hadoop模块来运行,也可以作为独立解决方案来运行。

刚开始学习的时候,应该先了解数据处理方面的不同,Spark相比Hadoop 的MapReduce模块,Spark确实速度很快,最多比Hadoop MapReduce快100倍)。这是因为MapReduce使用持久存储,而Spark使用弹性分布式数据集(RDD)。

2.Spark核心-RDD

RDD是一种分布式弹性数据集,将数据分布存储在不同节点的计算机内存中进行存储和处理。每次RDD对数据处理的最终结果,都分布在不同的节点中。这样的话,在进行到下一步数据处理的工作的时候,数据可以直接从内存中提取,从而省去了大量的IO操作。

另一个特性是延迟计算,即是一个完整的RDD运行任务被分成两个部分:Transformation和Action。Transformation用于对RDD的创建,同时还提供了大量的操作方法,例如map、filter、groupBy、join。Action是数据的执行部分,其通过执行count、reduce、collect等方法去真正执行数据的计算部分。实际上,RDD中所有的操作都是使用的Lazy模式进行,Lazy是一种程序优化的特殊形式。运行在编译的过程中不会立刻得到计算的最终结果,而是记住所有的操作步骤和方法,只有显式的遇到命令才进行计算。这样做的好处在于大部分的优化和前期工作在Transformation中已经执行完毕,当Action进行工作时,只需要利用全部自由完成业务的核心工作。

二、Spark 的安装

首先建议大家安装spark2.0之后的版本(具体是有多少有点就不说了,反正就是好学,好用)

安装spark2x之前(我是在Linux下安装的),首先要安装

1.安装JAVA8

CentOS下安装JDK的三种方法,这一过程中配置环境变量时可能会出错,大家一定要认真看教程。

  1. Anaconda安装

Linux下安装Anaconda,仔细看教程就会发现Anaconda的安装过程中,会提示是否配置环境变量,到时输入"yes"。有一点要注意的是,一般Linux下都自带的Python,安装anaconda时要与自带的Python版本相同,不然在数据计算的时候很容易报错。

3.安装scala

linux下安装 scala,看教程配置好环境变量即可。

4.安装Spark

下载地址,在官网上下载好之后按照默认格式下载,自己不要改。
安装Spark中配置环境变量与Scala安装方式是一样的

5.启动spark

我这是单机下运行的,就是说没有连接公司集群

5.1 第一种方式

cd  usr/spark/spark-2.0.2-bin-hadoop2.7   (进入到自己spark目录下)
PYSPARK_DRIVER_PYTHON=ipython ./bin/pyspark   (启动)

5.2 直接在终端输入pyspark

5.3 如果是想运行含有spark API的Python文件

cd  /usr/spark/spark-2.0.2-bin-hadoop2.7   (进入到自己spark目录下)./bin/spark-submit /usr/xxx/abc.py    ('/usr/xxx/abc.py'是自己的文件路径)

三、Spark知识点

在最近的项目中,自己主要利用spark在做数据处理,没有涉及到建模的部分,所以简单的总结如下:
1.数据的读取

lines = sc.textFile("examples/src/main/resources/people.txt") #读到的数据是RDD格式lines=spark.read.json("examples/src/main/resources/people,json")#读到的数据是Dataframe格式

2.RDD

#结合RDD的map函数,可以对数据的每一行进行操作,非常的方便
parts = lines.map(lambda l: l.split(","))

3.Dataframe

schemaPeople.createOrReplaceTempView("people")
#其中schemaPeople是Dataframe数据,people是创建的临时视图,对临时视表可以直接进行SQL的操作,所以数据处理起来也是比较简单的results = spark.sql("SELECT name FROM people")
#此时的results又变成了Dataframe数据

其中如果想改变数据的格式或是Dataframe的列名,也是可以把Dataframe改变成RDD,然后再进行每一行的操作。

lon_lat=lon_lat.rdd.map(lambda p:Row(lat1=float(p["lat"]),lon1=float(p["lon"]))

参考:
1.更多的spark知识点
2.spark常用函数

数据挖掘之Spark学习相关推荐

  1. Apache Spark学习:利用Eclipse构建Spark集成开发环境

    介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上, 介绍如何利用Eclipse构建Spark集成开发环境 . 不建议大家使用eclips ...

  2. Apache Spark学习:利用Scala语言开发Spark应用程序

    Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Ja ...

  3. 机器学习如何选择模型 机器学习与数据挖掘区别 深度学习科普

    今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里. 更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html 另 ...

  4. Spark学习之Spark调优与调试(7)

    Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...

  5. 用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...

  6. Spark学习(一) -- Spark安装及简介

    标签(空格分隔): Spark 学习中的知识点:函数式编程.泛型编程.面向对象.并行编程. 任何工具的产生都会涉及这几个问题: 现实问题是什么? 理论模型的提出. 工程实现. 思考: 数据规模达到一台 ...

  7. spark学习-58-Spark的EventLoggingListener

    1.本次调试查看源代码采用 spark学习-57-Spark下Scala版HBase下的根据权重获取最真实数据http://blog.csdn.net/qq_21383435/article/deta ...

  8. spark学习-28-Spark数据倾斜问题

    文章目录 推荐:先看看这个 spark学习-27-Spark性能调优(2) 目的 数据倾斜调优 简述 数据倾斜发生时的现象 数据倾斜发生的原理 上面说了那么多其实我还是没具体见过什么是数据倾斜了 分析 ...

  9. spark学习-Spark算子Transformations和Action使用大全(Action章)

    spark学习-22-Spark算子Transformations和Action使用大全(Transformations章(一)) http://blog.csdn.net/qq_21383435/a ...

最新文章

  1. ldap客户端工具_什么是性能测试?性能测试主流工具有哪些?
  2. 报名 | 刘鹰教授:草根创新力:中国经济快速发展的秘诀
  3. mysql忘记密码,如何重置密码
  4. html5 像素人物,HTML5 Canvas 像素火焰 | 火苗
  5. JMM主内存和工作内存运行流程图
  6. cf1555C Coin Rows
  7. React文档(五)组件和props
  8. 在Visual C++中用ADO进行数据库编程(下)
  9. 【清单】—— 编程方法、整洁代码与重构
  10. deepin上配置eclipse的hadoop开发环境
  11. 树莓派4外置wifi天线_只需25美元,算力提升3倍:树莓派4计算模组上线
  12. 中国贸易外经统计年鉴(2021年)
  13. 直播间卡人气小秘诀,快速增加直播间人气
  14. 宇宙物演进程——外星人去哪了游戏代码(Python实现)
  15. win7系统安装 wifi连接到服务器,win7系统笔记本wifi无法连接到服务器1237的解决方法...
  16. 亚商投资顾问 早餐FM/1011国内成品油价调整迎年内首次搁浅
  17. c语言两个for语句并列执行_C语言for循环(for语句)详解
  18. Vue li始终前面有黑点
  19. 【Excel统计分析插件】上海道宁为您提供统计分析、数据可视化和建模软件——Analyse-it
  20. systemtap引用自定义头文件的手艺

热门文章

  1. Exchange Web Service(EWS) 协议同步邮件
  2. 打造Android万能下拉刷新上拉加载控件
  3. 网络硬盘录像机、边缘存储和云存储的优缺点
  4. 66W真的比60W充电更快吗?基于Charge pump Charger的快充方案分析
  5. python安卓库拍照_Python Faker库的实战,用Faker库生成伪造的安卓通讯录
  6. 2019腾讯广告算法大赛之清洗曝光广告数据集以及构造标签
  7. 由英雄无敌Online开源 想到的
  8. 为什么说盲盒市场充满机遇
  9. 前端实现文件上传(点击+拖拽)
  10. 《伪样本新场景样本挖掘和适应》