Pyspark基础入门3

news/2024/12/1 10:31:34/

Pyspark

注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hive Flume等等~写的都是纯干货,各种顶会的论文解读,一起进步。
今天继续和大家分享一下Pyspark基础入门3
#博学谷IT学习技术支持


文章目录

  • Pyspark
  • 前言
  • 一、RDD的基本介绍
  • 二、RDD的五大特性和五大特点
  • 三、如何构建RDD
    • 1.通过并行化本地的方式构建RDD
    • 2. 通过读取外部数据源方式
  • 总结


前言

Spark是一款用于大规模数据处理分布式的分析引擎
在这里插入图片描述
今天主要分享的RDD


一、RDD的基本介绍

RDD是一个抽象的数据模型, RDD本身并不存储任何的数据, 仅仅是一个数据传输的管道, 在这个管道中,作为使用者, 只需要告知给RDD应该从哪里读, 中间需要进行什么样的转换逻辑操作, 以及最后需要将结果输出到什么位置即可, 一旦启动后, RDD会根据用户设定的规则, 完成整个处理操作

二、RDD的五大特性和五大特点

  • 五大特性:

1- (必须的) RDD可分区的
2- (必须的) 每一个RDD都是由一个计算函数产生的
3- (必须的) RDD之间是存在着依赖关系
4- (可选的) 对于KV类型的数据, 是存在分区函数,对于KV类型的RDD默认是基于Hash 分区方案
5- (可选的) 移动数据不如移动计算(让计算程序离数据越近越好)

  • 五大特点:

1- RDD是可分区的: 分区是一种逻辑分区, 仅仅定义分区的规则,并不是直接对数据进行分区操作, 因为RDD本身不存储数据
2- RDD是只读的: 每一个RDD都是不可变的, 如果想要改变, 处理后会得到一个新的RDD, 原有RDD保存原样
3- RDD之间存在依赖关系: 每个RDD之间都是有依赖关系的, 也称为血缘关系, 一般分为两种依赖(宽依赖/窄依赖)
4- RDD可以设置cache(缓存): 当计算过程中, 一个RDD被多个RDD所依赖的时候, 可以将这个RDD结果缓存起来, 这样后续使用这个RDD的时候, 可以直接获取, 不需要重新计算
5- RDD的checkpoint(检查点): 与缓存类似, 都是可以将中间某一个RDD的结果保存起来, 只不过checkpoint支持持久化保存

三、如何构建RDD

1- 通过parallelized Collections构建RDD: 并行本地集合方式 (测试)

2- 通过 External Data构建RDD: 加载外部文件的方式 (测试/开发)

在这里插入图片描述

1.通过并行化本地的方式构建RDD

from pyspark import SparkContext, SparkConf
import os
# 锁定远端环境, 确保环境统一
os.environ['SPARK_HOME'] = '/export/server/spark'
os.environ['PYSPARK_PYTHON'] = '/root/anaconda3/bin/python3'
os.environ['PYSPARK_DRIVER_PYTHON'] = '/root/anaconda3/bin/python3'if __name__ == '__main__':print("如何构建RDD方式一: 并行本地集合")# 1. 创建SparkContext核心对象conf = SparkConf().setAppName("create_rdd_01").setMaster("local[2]")sc = SparkContext(conf=conf)# 2. 读取数据集: 本地集合rdd_init = sc.parallelize([1, 2, 3, 4, 5, 6, 7, 8, 9, 10],3)# 3. 打印结果数据print(rdd_init.collect())print(rdd_init.getNumPartitions()) # 获取这个RDD有多少个分区print(rdd_init.glom().collect()) # 获取每个分区中的数据# 4- 释放资源sc.stop()

2. 通过读取外部数据源方式

from pyspark import SparkContext, SparkConf
import os
# 锁定远端环境, 确保环境统一
os.environ['SPARK_HOME'] = '/export/server/spark'
os.environ['PYSPARK_PYTHON'] = '/root/anaconda3/bin/python3'
os.environ['PYSPARK_DRIVER_PYTHON'] = '/root/anaconda3/bin/python3'if __name__ == '__main__':print("如何构建RDD方式二: 读取外部数据集")# 1. 创建SparkContext核心对象conf = SparkConf().setAppName("create_rdd_02").setMaster("local[*]")sc = SparkContext(conf=conf)# 2. 读取数据集:rdd_init = sc.textFile("file:///export/data/workspace/ky06_pyspark/_02_SparkCore/data/")# 3. 打印结果print(rdd_init.collect())print(rdd_init.getNumPartitions())print(rdd_init.glom().collect())"""[['hadoop hive hive hadoop sqoop', 'sqoop kafka hadoop sqoop hive hive', 'hadoop hadoop hive sqoop kafka kafka'], ['kafka hue kafka hbase hue hadoop hadoop hive', 'sqoop sqoop kafka hue hue kafka']][['hadoop hive hive hadoop sqoop', 'sqoop kafka hadoop sqoop hive hive'], ['hadoop hadoop hive sqoop kafka kafka'], ['kafka hue kafka hbase hue hadoop hadoop hive'], [], ['sqoop sqoop kafka hue hue kafka']]"""# 4- 释放资源sc.stop()

总结

今天给大家分享的是Pyspark基础入门3基本的RDD操作。


http://www.ppmy.cn/news/22438.html

相关文章

C++高级教程——C++多线程

C高级教程——C多线程C 多线程创建线程终止线程实例连接和分离线程C 多线程 多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。在一般情况下,有两种类型的多任务处理:基于进程和基于线程。 基于进程的…

Idea 运行多个微服务 Idea 一个服务开启多个端口运行 idea 开启多个端口服务

Idea 运行多个微服务 Idea 一个服务开启多个端口运行 idea 开启多个端口服务 一、情景描述 在使用idea 练习微服务项目时,如 要测试负载均衡功能,那么一个项目需要开启多个不同端口的服务,这个在idea中 如何实现呢? 二、设置步骤 …

Linux系统的服务管理

1、服务的概念 操作系统中在后台持续运行的程序,本身并没有操作界面,需要通过端口号访问和操作。CentOS 6和CentOS 7的服务管理有很大区别,我们分别来看。 2、CentOS6服务 ①service命令 启动服务:service 服务名 start 停止…

自动化测试成长路上必会技巧

目录 1. 首先要搞明白几个问题 2. 语言基础 3. selenium学习,脚本编写 4. 执行测试,脱离脚本阶段 5. 参数化、配置、日志、简单框架搭建 6. 自动执行,自动发送报告 7. 高级货,平台?分布式?界面&…

Hadoop 复习 ---- chapter08

Hadoop 复习 ---- chapter08RPC 定义: Remote Procedure Call,远程方法调用,它允许一台计算机程序远程调用另外一台计算机的子程序,而不关心底层的网络通信细节。RPC 经常用于分布式网络通信中。 RPC 特点:透明性、高…

OSG三维渲染引擎编程学习之三十四:“第三章:OSG场景组织” 之 “3.16 ClipNode剪切面节点”

目录 第三章:OSG场景组织 3.16 ClipNode剪切面节点 3.16.1 ClipNode介绍 3.16.2 ClipNode示例 第三章:OSG场景组织 在OSG中存在两个树:场景树、渲染树。其中,场景树是由一系列节点Node组成,这些节点Node可以是矩阵变换、状态变换,

人工智能与智能的异同

【编者按:具身智能是事实性交互智能,还不具备价值性交互态势感知能力,若要实现价值性智能(即人类的智能),还需要研究离身和反身智能的机理。具身只是主观感觉、己向知觉,离身则会产生客观感觉、…

数据库服务器配置

数据库服务器配置 如何查看参数 数据库共有多少个参数? 通过数据字典sys_settings视图可以统计当前数据库所有支持的参数。 查看当前会话的参数值 查看全部参数 方法一:使用show all 方法二:使用sys_settings 查看具体参数 方法1——使…