当前位置:   article > 正文

Spark 的基本概念和操作_spark sc概念

spark sc概念

Spark 总结

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

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

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

Spark 还支持与 HDFS 进行对接。

import findspark
findspark.init()
import pyspark
  • 1
  • 2
  • 3

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
1
4
9
16
<
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/816341
推荐阅读
相关标签
  

闽ICP备14008679号