SPARK基础

2021-09-13  本文已影响0人  zzzzzzzeng

1. 概述

Spark是一个用来实现快速而通用的集群计算的平台。

Spark的核心是一个 对 很多计算任务组成的,运行在多个工作机器或是一个计算集群上的应用进行调度,分发以及监控的计算引擎。

Spark SQL是

相较与MapReduce的优势:

  1. 基于内存;
  2. 模糊了Map和Reduce的界限,减少了磁盘读写;

spark独立应用:python api

SparkConf配置应用,SparkContext对象用于访问spark。一个对下个代表一个连接,shell启动时,已有一个自带的SparkContext对象,叫做sc。

独立应用中如下配置:SparkConf传递集群URL和应用名两个参数即可。如需停止,sc.stop()或sys.rxit()即可。

from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf=conf)

3. RDD编程

3.1 RDD基础

弹性分布式数据集(Resilient Distributed Dataset, RDD)是分布式的元素集合。

3.1 创建

RDD的两种创建方式:读取外部数据集,或在驱动程序中对一个集合进行并行化。

3.3 RDD操作

RDD操作分为转化操作和行动操作。

惰性求值:转化操作在行动操作前是不会执行的。这样用户可以编写一系列简单操作,再执行。

3.4 向Spark传递函数

# lambda
word = rdd.filter(lambda line: "python" in line)
# 传递顶层函数或自定义局部函数
def containsPython(line):
    ruturn "python" in line
word.filter(containsPython)

3.5 常见的转化操作和行动操作

常见的转化和行动操作

3.6 持久化

避免对一个RDD多次计算,可以对其进行持久化,RDD的节点会保存他们所求出的分区数据。

python中总是会序列化

persist选项:

MEMORY_ONLY, DISK_ONLY, MEMORY_AND_DISK

cache是默认储存级别的persist。

unpersist将持久化的RDD从缓存中移除。

4. 键值对操作

4.1 定义

pair RDD:键值对类型的RDD,可以并行操作各个键或跨节点重新进行数据分组的操作接口。

4.2 创建

python 直接map元素返回成二元tuple即可。

4.3 Pair RDD的转化操作

Pair RDD的转化操作

上一篇下一篇

猜你喜欢

热点阅读