Spark 的基本概念和操作

Spark 总结

Spark 是流行大数据计算框架之一,和 mapred 相比,这种计算框架更加灵活方便。并且还有强大的机器学习库 Spark Mllib 。

除此之外,我们还可以发现 Spark 项目包含很多组件,这些组件关系密切并且可以相互调用。这样就不需要组合各种工具使用了。

Spark 可以运行在各种集群上,比如 YARN ,同时自带独立集群管理器。

Spark 还支持与 HDFS 进行对接。

import findspark
findspark.init()
import pyspark

spark核心概念

每个Spark程序都由 driver 来负责发起,提交各种任务,Spark 通过 SparkContext 来充当 Spark 应用和集群之间的连接关系。

Spark 的核心操作建立在 RDD(Resilient Distributed Dataset) 也就是弹性分布式数据集上,可以说 Spark 的操作就是建立在 RDD
上的各种操作。而这些操作分为转化操作和核心操作

转化操作是惰性求值的,也就是在调用行动操作之前,转化操作不会被执行。

如果我们的计算过程中需要对一个RDD进行多次运算,那么由于惰性计算,这个RDD会被计算多次。此时我们可以将他进行持久化,将这个RDD的值缓存起来,以便后续使用。

一个简单的Spark例子

首先是 RDD 的创建:
RDD 通过 SparkContext 来创建,提供两种创建方式。
一种是通过sc.parallelize创建,这个也是最简单的办法
如果数据比较大,就没办法一口气保存在内存里了。这个时候我们就需要从文件或者分布式文件系统中读取了。在下面会演示。

from pyspark import SparkContext
sc = SparkContext.getOrCreate()

# 一个求平方数的例子
# 为了防止出现重复创建 Spark Context 可以用上面的方法创建。
nums  = sc.parallelize([1,2,3,4])                 #创建RDD的方法
squred = nums.map(lambda x : x*x).collect()       #对RDD先执行转化操作 map ,之后执行执行操作 collect()
for num in squred :
    print(num)
1
4
9
16
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值