pyspark入门保姆级教程

spark简介

spark诞生于加州大学伯克利分校的AMP实验室。spark一开始是用于解决Hadoop MapReduce程序中的潜在问题的 框架。尽管Hadoop MapReduce是一个开创性的大数据处理框架,但实际上,它在速度上仍有一定的不足。全新的spark有能力做到 内存计算,使它的速度比其他的大数据处理框架快100倍。

数据

数据可以从三个不同的角度来看:收集数据的方式, 存储和处理

数据收集

在过去的几年里,数据收集的方式已经发生了巨大的变化 。从在杂货店买一个苹果到删除一个你手机上的应用程序,每个数据点在被捕捉在后,通过各种内置的应用程序进行收集。不同的互联网设备,许多物联网设备可以捕捉到广泛的视觉和感觉信号,而仅仅每毫秒间隔一次。相对企业而言从各种来源收集这些数据已经十分便捷,并在以后使用它进行改进或决策工作的制定。

数据存储

在过去几年,没有人想象数据会留存在某些地方或者存储数据的成本会和它一样便宜。 企业已经接受了云存储,并在内部部署的方法上开始看到其好处 。然而,由于各种原因,一些企业仍然选择企业预置型存储。众所周知,数据存储的起源是通过磁带。然后是突破性的发展,软盘使数据可以从一个地方移动到另一个地方。 然而,数据的大小仍然是一个巨大的限制。闪存驱动器和 硬盘使存储和传输大量数据更加容易,并且降低了成本。

存储数据的成本已经明显表现为随着时间显著减少,并继续下降。因此, 无论如何,企业都不会遇到存储大量数据这样的问题。从日志到财务和运营交易,再到简单的交易、员工的反馈,一切都被存储起来。

数据处理

数据的最后一个方面是使用存储的数据,并处理一些数据分析问题或运行一个应用程序。我们已经目睹了它超群的效率。过去需要几分钟,使用今天的操作,可能需要不到一秒钟。机器可以更快、更容易地处理数据。然而, 单台机器可以处理的数据量仍有限制, 不管它的处理能力如何。所以,spark背后的潜在想法 是使用机器的集合(群集)和统一处理引擎来处理和处理大量的数据,并且不会降低速度和安全性能,这是最终的目标。

spark架构

spark有5个核心组件,使得其性能如此强大、使用起来如此方便,包括了一下几层:

  1. storage 存储器:
  2. Resource management 资源管理
  3. Engine 引擎
  4. Ecosystem 生态系统
  5. APIs
    在这里插入图片描述

storage 存储器

在使用Spark之前,必须提供数据才能处理它。这些数据可以保存在任何类型的数据库中。Spark提供了多个选项可以使用不同类别的数据源,以便能够在大型数据源上处理它。Spark允许您使用传统的关系数据库(NoSQL,Cassandr MongoDB)。

Resource management 资源管理

spark工作在一组机器(它也可以在一台有多个核的机器上工作)时,被称为spark群。通常,有一个资源管理器 可有效地处理这些资源之间的工作负载的集群。使用最广泛的两个资源管理器是YARN和Mesos。资源管理器内部有两个主要组件:cluster manager和worker。它有点像主从体系结构,其中集群管理器充当主节点,而工作人员充当集群中的从属节点。 群集管理器将跟踪所有与 工作节点及其当前状态。集群管理器始终保持维护。集群管理器的主要角色是管理工作节点 并根据工人的可用性和能力为他们分配任务节点。另一方面,工作节点只负责执行 它是由集群管理器提供的任务。
在这里插入图片描述

Engine and Ecosystem

Spark架构的基础是其核心,它构建在RDD之上 (弹性分布式数据集),并提供多个API来构建其他数据集和生态系统。它包含两个部分: 分布式计算基础设施和RDD编程抽象。 Spark工具包中的默认库有四种不同的产品。

spark SQL

全球大多数ETL操作员所使用SQL,这个现状使得其成为Spark产品的一部分。它允许Spark用户通过运行SQL查询进行结构化数据处理。事实上,spark SQL 利用优化器来优化执行期间SQL查询。 使用SparkSQL的另一个优点是,它可以很容易地处理 具有多个数据库文件和存储系统,如SQL、NoSQL、Parquet,等。

MLlib

在大数据集上训练机器学习模型开始成为一个巨大的挑战,直到Spark的MLlib(机器学习库)问世。MLlib提供了在巨大的数据集上使用Spark集群训练机器学习模型的能力。在Spark ML库中可以使用有监督,无监督,推荐系统;NLP-based模型;和深度学习等模型。

结构化的流媒体处理

Spark流媒体库提供了阅读和处理 实时流媒体数据的功能。传入的数据可以是批处理数据或来自不同来源的实时数据的数据 。结构化的流媒体是能够从flume、kafka、推特等来源获取实时数据。

Graph X

这是一个位于spark核心顶部的库,它允许用户使用 处理特定的数据类型(图形数据类型),它由节点和边组成。一个典型的图被用来建模不同对象之间的关系。节点表示对象,节点之间的边表示节点之间的关系。

配置环境

本地环境配置

我觉得这篇写的很好: 传送门.

云环境配置

跳过繁杂的本地环境配置
我们可以在databricks或者colab上运行我们的pyspark
在这里我们选择databricks,毕竟是属于 Spark 的商业化公司,由美国伯克利大学 AMP 实验室的 Spark 大数据处理系统多位创始人联合创立。Databricks 致力于提供基于 Spark 的云服务,可用于数据集成,数据管道等任务。

  1. 找到databricks网址 给个传送门:databricks
  2. 注册账号
  3. 登录
  4. 创建一个新的cluster
  5. 将一个新的notebook挂载在你的cluster下
  6. 开始你的操作吧!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

取个名字真难啊啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值