Python第二语言(十三、PySpark实战)

目录

1.开篇

2. PySpark介绍

3. PySpark基础准备

3.1 PySpark安装

3.2 掌握PySpark执行环境入口对象的构建

3.3 理解PySpark的编程模型

4. PySpark:RDD对象数据输入

4.1 RDD对象概念:PySpark支持多种数据的输入,完成后会返回RDD类的对象;

4.2 Python数据容器转RDD对象.parallelize(数据容器对象)

4.3 RDD存在很多计算的方法

4.4 读取文件转RDD对象:通过SparkContext入口对象来读取文件,构建RDD对象;

5. PySpark:RDD对象数据计算(一)

5.1 给Spark设置环境变量(不设置的时候,控制台会报错,出现找不到python.exe解释器的情况)

5.2 RDD的map方法:将RDD的数据根据函数进行一条条处理

5.3 RDD的flatMap方法:基本和map一样,但是多一个功能:将嵌套list给转成单list;[[1, 2, 3], [4, 5, 6]]转成[1, 2, 3, 4, 5, 6]

5.4 RDD的reduceByKey方法:将key分组后进行value逻辑处理;

6. 数据计算案例(一):完成使用PySpark进行单词技术的案例

7. PySpark:RDD对象数据计算(二)

7.1 RDD的filter方法:传入T泛型数据,返回bool,为false 的数据丢弃,为true的数据保留;(函数对RDD数据逐个处理,得到True的保留至返回值的RDD中)

7.2 RDD的distinct方法:对RDD数据进行去重,返回新RDD;

7.3 RDD的sortBy方法:对RDD的容器按照指定规则排序,返回新RDD;

8. 数据计算案例(二):计算城市中的商品以及销售额

8.1 需求

8.2 文件数据

8.3 需求一实现:处理结果自动返回的是一个二元元组;

8.4 需求二实现:将字典中的数据处理,返回一个list;

8.5 需求三实现:过滤除北京的数据,并只返回一个参数category,是list列表,并进行去重,去重后的结果进行collect输出;

9. 将RDD的结果数据输出为Python对象的各类方法


导航:

Python第二语言(一、Python start)-优快云博客

Python第二语言(二、Python语言基础)-优快云博客

Python第二语言(三、Python函数def)-优快云博客

Python第二语言(四、Python数据容器)-优快云博客

Python第二语言(五、Python文件相关操作)-优快云博客

Python第二语言(六、Python异常)-优快云博客

Python第二语言(七、Python模块)-优快云博客

Python第二语言(八、Python包)-优快云博客

Python第二语言(九、Python第一阶段实操)-优快云博客

Python第二语言(十、Python面向对象(上))-优快云博客

Python第二语言(十一、Python面向对象(下))-优快云博客

Python第二语言(十二、SQL入门和实战)-优快云博客

Python第二语言(十三、PySpark实战)-优快云博客

Python第二语言(十四、高阶基础)-优快云博客

1.开篇

  • PySpark大数据计算第三方库,Spark是大数据开发的核心技术;
  • python的spark中使用map时 Python worker exited unexpectedly (crashed)
    • 将原本的python12解释器降低版本到python10版本解释器,降低python解释器版本,因为版本不兼容;
    •  
    •  记得下载使用的包;

2. PySpark介绍

  • Apache Spark是用于大规模数据(large-scala data)处理的统一(unifield)分析引擎;
  • Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据;
  • Python On Spark:Python语言,是Spark重点支持的方向;

PySpark第三方库:

  • PySpark是由Spark官方开发的Python语言第三方库;
  • Python开发者可以使用pip程序快速安装PySpark并像其它第三方库一样使用;
  • 主要作用:
    • 进行数据处理;
    • 提交至Spark集群,进行分布式集群计算;

3. PySpark基础准备

3.1 PySpark安装

安装命令: pip install pyspark

加速下载命令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark

3.2 掌握PySpark执行环境入口对象的构建
  • PySpark是分布式集群的操作,setMaster(xxx).\setAppName(xxx)是用来控制集群的代码,图中代码用的是单机的;
  • setAppName是Spark任务的名称;
  • PySpark的执行环境入口对象是:类SparkContext的类对象,所有PySpark的功能都是从SparkContext对象作为开始;
# 导包
from pyspark import SparkConf, SparkContext

# 创建SparkConf类对象
conf = SparkConf().setMaster("local[*]").\
    setAppName("test_spark_app")

# 基于SparkConf类对象创建SparkContext类对象
sc = SparkContext(conf=conf)

# 打印PySpark的运行版本
print(sc.version)

# 停止SparkContext对象的运行
sc.stop()

3.3 理解PySpark的编程模型

SparkContext类对象,是PySpark编程中一切功能的入口;

  • PySpark的编程三大步骤:
    1. 数据输入:通过SparkContex类对象的成员方法完成数据的读取操作,读取后得到RDD类对象;
    2. 数据处理计算:通过RDD类对象的成员方法,完成各种数据计算的需求;
    3. 数据输出:将处理完成后的RDD对象,调用各种成员方法完成,写出文件,转换位list等操作;

4. PySpark:RDD对象数据输入

  • RDD就是PySpark计算后返回的对象容器;
4.1 RDD对象概念:PySpark支持多种数据的输入,完成后会返回RDD类的对象;

RDD全称为:弹性分布式数据集(Resilient Distributed Datasets);

  • PySpark针对数据的处理,都是以RDD对象作为载体;
    1. 数据存储在RDD内;
    2. 各类数据的计算方法,也都是RDD的成员方法;
    3. RDD的数据计算方法,返回值依旧是RDD对象;
  • 比如说JSON文件、文本文件、数据库数据,都是可以通过SparkContext类对象,经过RDD对象的处理,并返回给文件文件或JSON文件,或者数据库;
4.2 Python数据容器转RDD对象.parallelize(数据容器对象)
  • 提示:
    1. 字符串会被拆分出1个个的字符,存入RDD对象;
    2. 字典仅有key会被存入RDD对象;
    3. RDD对象返回的是容器,与list一样结果;
from pyspark import SparkConf, SparkContext

conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")
sc = SparkContext(conf=conf)

# 通过parallelize方法将Python对象加载到Spark内,称为RDD对象
rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd2 = sc.parallelize((1, 2, 3, 4, 5))
rdd3 = sc.parallelize("abcdefg")
rdd4 = sc.parallelize({1, 2, 3, 4, 5})
rdd5 = sc.parallelize({"key1": "value1", "key2": "value2"})

# 使用collect方法查看RDD中的内容
print(rdd1.collect())
print(rdd2.collect())
print(rdd3.collect())
print(rdd4.collect())
print(rdd5.collect())

sc.stop()

4.3 RDD存在很多计算的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值