Professional Documents
Culture Documents
Untitled
Untitled
前言介绍
基础准备
目录 数据输入
Contents 数据计算
数据输出
综合案例
分布式集群运行
1. 了解什么是 Spark 、 PySpark
Spark 是什么
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
Python On Spark
Spark 作为全球顶级的分布式计算框架,支持众多的编程语言进行开发。
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
PySpark
作为 Python 库
进行数据处理
PySpark
提交至 Spark 集群
进行分布式集群计算 为什么要学习 PySpark 技术呢?
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
Why PySpark
Python 应用场景和就业方向是十分丰富的,其中,最为亮点的方向为:
大数据开发 和 人工智能
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
Why PySpark
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
衔接大数据方向
只会 Python 就学大数据,能学会吗?
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
衔接大数据方向
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
计算。
总结
总结
于以 Python 代码完成 Spark 任务的开发
境中,调度大规模集群进行执行。
2. 为什么要学习 PySpark ?
大数据开发是 Python 众多就业方向中的明星赛道,薪资高岗位
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
3. 如何衔接大数据开发方向?
总结
总结 识,所以完全可以学会
想要深入大数据开发领域:
高级软件人才培训专家
前言介绍
基础准备
目录 数据输入
Contents 数据计算
数据输出
综合案例
分布式集群运行
1. 掌握 PySpark 库的安装
PySpark 库的安装
在” CMD” 命令提示符程序内,输入:
pip install pyspark
或使用国内代理镜像网站(清华大学源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
构建 PySpark 执行环境入口对象
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
PySpark 的编程模型
PySpark 的编程,主要分为如下三大步骤:
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
PySpark 的编程模型
• 通过 SparkContext 对象,完成数据输入
• 输入数据后得到 RDD 对象,对 RDD 对象进行迭代计算
• 最终通过 RDD 对象的成员方法,完成数据输出工作
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. 如何安装 PySpark 库
总结
PySpark 的功能都是从 SparkContext 对象作为开始
总结 3. PySpark 的编程模型是?
完成计算
list 、元组、字典、文本文件、数据库等
高级软件人才培训专家
前言介绍
基础准备
目录 数据输入
Contents 数据计算
数据输出
综合案例
分布式集群运行
学习目标 1. 理解 RDD 对象
RDD 对象
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
注意:
• 字符串会被拆分出 1 个个的字符,存入 RDD 对象
• 字典仅有 key 会被存入 RDD 对象
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
读取文件转 RDD 对象
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. RDD 对象是什么?为什么要使用它?
RDD 对象称之为分布式弹性数据集,是 PySpark 中数据计算的载体,它可以:
• 提供数据存储
总结
总结
•
•
提供数据计算的各类方法
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 掌握 RDD 的 map 方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
map 方法
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. map 算子(成员方法)
总结
总结 • 对 RDD 内的元素逐个处理,并返回一个新的 RDD
2. 链式调用
方式多次调用算子。
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 掌握 RDD 的 flatMap 方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
总结
总结
1. flatMap 算子
• 计算逻辑和 map 一样
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 掌握 RDD 的 reduceByKey 方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. reduceByKey 算子
总结
• 接受一个处理函数,对数据进行两两计算
总结
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 完成使用 PySpark 进行单词计数的案例
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
WordCount 案例
使用学习到的内容,完成:
• 读取文件
• 统计文件内,单词的出现数量
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 掌握 RDD 的 filter 方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
总结
总结 1. filter 算子
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 掌握 RDD 的 distinct 方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
语法:
rdd.distinct() 无需传参
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
总结
总结 1. distinct 算子
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 掌握 RDD 的 sortBy 方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. sortBy 算子
总结
总结 • 接收一个处理函数,可用 lambda 快速编写
• 函数表示用来决定排序的依据
• 可以控制升序或降序
• 全局排序需要设置分区数为 1
高级软件人才培训专家
map 方法
前言介绍
flatMap 方法
基础准备
目录 数据输入
reduceByKey 方法
练习案例 1
Contents 数据计算
filter 方法
数据输出 distinct 方法
综合案例 sortBy 方法
分布式集群运行 练习案例 2
学习目标 1. 完成练习案例 2 的开发
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
前言介绍
基础准备
目录 数据输入
Contents 数据计算
输出为 Python 对象
数据输出
输出到文件中
综合案例
分布式集群运行
学习目标 1. 掌握将 RDD 的结果输出为 Python 对象的各类方法
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
数据输出
数据输入:
• sc.parallelize Python 对象
或 输入
• sc.textFile
文件
数据计算:
计算
• rdd.map RDD
rdd 的那些返回值还是 rdd 的方法
• rdd.flatMap
• rdd.reduceByKey
• ... Python 对象 输出
或
rdd 的那些返回值不是 rdd 的方法
文件
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
返回值是一个 list
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
返回值等同于计算函数的返回值
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. Spark 的编程流程就是:
• 对 RDD 进行计算(数据计算)
总结
总结 2. 数据输出的方法
数据输出可用的方法是很多的,本小节简单的介绍了 4 个。
高级软件人才培训专家
前言介绍
基础准备
目录 数据输入
Contents 数据计算
输出为 Python 对象
数据输出
输出到文件中
综合案例
分布式集群运行
学习目标 1. 掌握将 RDD 的内容输出到文件中
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
注意事项
调用保存文件的算子,需要配置 Hadoop 依赖
• 下载 Hadoop 安装包
• http://archive.apache.org/dist/hadoop/common/hadoop-3.0.0/hadoop-3.0.0.tar.gz
• 解压到电脑任意位置
• 在 Python 代码中使用 os 模块配置: os.environ[‘HADOOP_HOME’] = ‘HADOOP 解压文件夹路径’
• 下载 winutils.exe ,并放入 Hadoop 解压文件夹的 bin 目录内
• https://raw.githubusercontent.com/steveloughran/winutils/master/hadoop-3.0.0/bin/winutils.exe
• 下载 hadoop.dll ,并放入 :C:/Windows/System32 文件夹内
• https://raw.githubusercontent.com/steveloughran/winutils/master/hadoop-3.0.0/bin/hadoop.dll
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
修改 rdd 分区为 1 个
方式 1 , SparkConf 对象设置属性全局并行度为 1 :
高级软件人才培训专家
多一句没有,少一句不行,用最短时间,教会更实用的技术!
1. RDD 输出到文件的方法
• rdd.saveAsTextFile( 路径 )
总结
总结
•
•
输出的结果是一个文件夹
有几个分区就输出多少个结果文件
2. 如何修改 RDD 分区
高级软件人才培训专家
前言介绍
基础准备
目录 数据输入
Contents 数据计算
数据输出
综合案例
分布式集群运行
学习目标 1. 完成综合案例的开发
搜索引擎日志分析
高级软件人才培训专家
前言介绍
基础准备
目录 数据输入
Contents 数据计算
数据输出
综合案例
分布式集群运行
学习目标 1. 了解 PySpark 代码在大数据集群上运行
Learning Objectives
多一句没有,少一句不行,用最短时间,教会更实用的技术!
提交命令:
bin/spark-submit --master yarn --num-executors 3 --queue root.teach --executor-cores 4 --executor-memory 4g
/home/hadoop/demo.py
高级软件人才培训专家