Spark练习-RDD创建,读取hdfs上的数据,指定rdd分区

news2024/11/25 12:54:37

目录

RDD的创建

读取HDFS上文件数据

RDD分区指定


RDD的创建

将python数据转为rdd

# 将Python数据转为rdd
data = [1,2,3,4]
res = sum(data) # 使用python的方法计算时,采用的单机资源计算,如果数据量较大时,可以将python数据转为spark的rdd数据,就可以借助spark的进行的分布式计算
print(res)

将python的列表转换为rdd

# 将pytho的列表数据转为rdd,需要使用pyspark中的sparkcontext类,该类中封装转化方法
from pyspark import SparkContext

# 1-先将类生成对象
# master 可以指定资源调度方式   不指定默认是local
# sc = SparkContext(master='yarn')
sc = SparkContext()

# 2-使用对象方法将python的列表转为rdd
# parallelize 将python的列表 ,元组,字典,转为 rdd,常用列表
rdd = sc.parallelize(data)

# 3-使用rdd提供的方法进行分布式聚合计算
res1 = rdd.reduce(lambda x,y:x+y)
# 查看计算结果
print(res1)

读取HDFS上文件数据

首先需要在hdfs的data目录下上传数据

读取hdfs的文件数据

# 创建rdd
# 读取hdfs的文件转换为rdd
from pyspark import SparkConf, SparkContext

# 1-创建对象
sc = SparkContext()

# 2-读取hdfs的文件数据
# 指定读取的文件路径
rdd1 = sc.textFile('hdfs://node1:8020/data/stu.txt')
# 指定读取目录,可以读取目录下的所有文件数据
rdd2 = sc.textFile('hdfs://node1:8020/data')


# 3-查看rdd中读取数据
res = rdd1.collect()
print(res)

res = rdd2.collect()
print(res)

读取单个文件,值输出指定文件的数据

读取到目录,会将整个目录的文件都读取到

RDD分区指定

 python数据转换rdd指定分区

from pyspark import SparkContext
# 数据在转化为rdd时,可以指定拆成多少个分区,也就是拆成多少份
# python数据转为rdd时指定分区数据
# 1-创建对象
sc = SparkContext()

data = [1,3,5,8,11,6,5,19]

# 2-指定分区数
# 转化rdd时指定分区数
# numSlices 指定分区的数量
rdd = sc.parallelize(data,numSlices=4)  # [[1, 3], [5, 8], [11, 6], [5, 19]]
rdd = sc.parallelize(data,numSlices=6) #  [[1], [3], [5, 8], [11], [6], [5, 19]]

# 查看分区后的数据形式  glom()查看分区形式
res = rdd.glom().collect()
print(res)

如果指定的分区数量不能够整除,则会随机分配

 读取hdfs上的数据

from pyspark import SparkContext
# 数据在转化为rdd时,可以指定拆成多少个分区,也就是拆成多少份
# python数据转为rdd时指定分区数据
# 1-创建对象
sc = SparkContext()
# 读取的文件指定分区数
# 文件在进行分区时,有时候会多一个空分区
# 文件大小%3 = 值 -- 余数
# 余数/值  占比  超过10%额外会创建一个空分区

rdd2 = sc.textFile("hdfs://node1:8020/data/stu.txt",minPartitions=4) # [['1,alice,F'], ['2,Tom,M'], ['3,lili,F'], []]
# rdd2 = sc.textFile("hdfs://node1:8020/data/stu.txt",minPartitions=2) # [['1,alice,F'], ['2,Tom,M'], ['3,lili,F']]

# 查看分区后的数据形式  glom()查看分区形式
res2 = rdd2.glom().collect()
print(res2)

 

文件大小%3 = 值 -- 余数
余数/值  占比  超过10%额外会创建一个

28B % 4 = 6..4

4/6  > 10% 所以会出现一个空的分区

---------------------------------------------

28B % 2 = 14...0

0/14  < 10% ,没有空分区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QD1-P2 HTML 编辑器:HBuilderX

本节学习&#xff1a; HTML课程内容介绍HBuilderX编辑器的使用 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p2 HTML 内容 基础语法 标签整体架构DOCTYPE 常用标签 标题和水平线段落和换行列表div 和 span格式化标签图片超链接标签表格表单字符实体 编辑器 HBuilder…

C/C++逆向:函数逆向分析-总体流程(整型指针)

函数的初始化 在逆向工程中&#xff0c;函数的初始化操作是函数在开始执行时&#xff0c;为正确运行而进行的准备工作。通常&#xff0c;这些操作发生在函数的序言&#xff08;Prologue&#xff09;阶段&#xff0c;具体的内容和顺序会因编译器、调用约定和目标平台&#xff0…

【AIGC】ChatGPT提示词Prompt高效编写模式:思维链、Self-Consistency CoT与Zero-Shot CoT

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;思维链 (Chain of Thought, CoT)如何工作应用实例优势结论 &#x1f4af;一致性思维链 (Self-Consistency CoT)如何工作应用实例优势结论 &#x1f4af;零样本思维链 (Ze…

MC802单片机:触控未来,8位高性能与多IO接口的完美结合

MC802单片机&#xff1a;开启智能生活新篇章 MC802 &#xff08;2 Touch Key 4 I/O&#xff09; MC802是由厦门晶尊微电子科技有限公司&#xff08;ICman&#xff09;推出的一款高性能8位单片机&#xff0c;它集成了2个自校正容性触摸按键和4个I/O口&#xff0c;专为需要多…

地级市-制造业集聚水平数据(2008-2021年)

制造业集聚水平是衡量一个地区制造业发展程度的重要指标&#xff0c;它不仅反映了制造业在地理上的集中程度&#xff0c;还体现了该地区制造业的专业化水平。 制造业集聚水平通常通过以下几个量化指标来衡量&#xff1a; 年末单位从业人员数&#xff1a;反映了制造业的劳动力…

如何替换OCP节点(二):使用 antman脚本 | OceanBase应用实践

前言&#xff1a; OceanBase Cloud Platform&#xff08;简称OCP&#xff09;&#xff0c;是 OceanBase数据库的专属企业级数据库管理平台。 在实际生产环境中&#xff0c;OCP的安装通常是第一步&#xff0c;先搭建OCP平台&#xff0c;进而依赖OCP来创建、管理和监控我们的生…

02_安装jmeter

windows&#xff1a; 安装jdk1.8.0&#xff1a; 1、下载安装包&#xff0c;双击运行安装&#xff0c;点击“下一步”直到完成 2、配置环境变量&#xff1a; JAVA_HOME的值配置为jdk安装目录如D:\java\jdk1.8.0_201 系统变量的Path中添加"%JAVA_HOME%\bin" 3、验证安装…

海外市场充电桩需求激增:充电基础设施展望

报告显示&#xff0c;在大多数欧盟国家的路网中&#xff0c;充电桩数量存在不足、不支持快速充电且分布不均匀的问题。具体而言&#xff0c;有6个欧洲国家的平均每百公里充电桩数量不足1个&#xff0c;17个国家的平均每百公里充电桩数量少于5个&#xff0c;仅有5个国家的平均每…

【Axure原型分享】标签管理列表

今天和大家分享通过标签管理列表的原型模板&#xff0c;包括增删改查搜索筛选排序分页翻页等效果&#xff0c;这个模板是用中继器制作的&#xff0c;所以使用也很方便&#xff0c;初始数据我们只要在中继器表格里填写即可&#xff0c;具体效果可以观看下方视频或者打开预览地址…

单片机(学习)2024.10.11

目录 按键 按键原理 按键消抖 1.延时消抖 2.抬手检测 通信 1.通信是什么 2.电平信号和差分信号 3.通信的分类 (1)时钟信号划分 同步通信 异步通信 (2)通信方式划分 串行通信 并行通信 (3)通信方向划分 单工 半双工 全双工 4.USART和UART&#xff08;串口通信&a…

selenium工具的几种截屏方法介绍(9)

在使用selenium做自动化的时候&#xff0c;可以对于某些场景截图保存当时的执行情况&#xff0c;方便后续定位问题或者作为一些证据保留现场。 获取元素后将元素截屏 我们获取元素后&#xff0c;使用函数screenshot将元素截屏&#xff0c;参数filename传入完整的png文件名路径…

最近 3 个 yyds 的开源项目!

01 电脑屏幕、麦克风记录工具 ScreenPipe 是一个开源的全天候本地屏幕与麦克风记录工具&#xff0c;为 AI 应用程序提供全方位上下文数据的支持。 该项目旨在成为 Rewind.ai 的替代方案&#xff0c;支持 Windows、Linux 和 macOS 等多平台应用&#xff0c;并且使用 Rust 语言构…

学习Ultralytics(获取yolov8自带的数据集并开始训练)

今天小编带大家学习一下YOLOv8 配置文件&#xff0c;用来定义不同数据集的参数和配置。这些文件包含了关于每个数据集的路径、类别数、类别标签等信息&#xff0c;帮助模型正确地加载和解析数据集&#xff0c;以便进行训练和推理。 具体来说&#xff0c;这些 YAML 文件的作用如…

AIGC时代的程序员生存法则:如何在AI辅助编程工具普及的背景下保持并提升核心竞争力

随着AIGC&#xff08;AI-Generated Content&#xff0c;如ChatGPT、MidJourney、Claude等&#xff09;技术的迅猛发展&#xff0c;特别是大型语言模型的不断涌现&#xff0c;程序员的工作方式正发生深刻变革。AI辅助编程工具的普及给编程行业带来了前所未有的挑战和机遇。一方面…

SwiftUI 6.0(iOS 18)将 Sections 也考虑进自定义容器子视图布局(上)

概述 在 WWDC 24 新推出的 SwiftUI 6.0 中,苹果对于容器内部子视图的布局有了更深入的支持。为了能够未雨绸缪满足实际 App 中所有可能的情况,我们还可以再接再厉,将 Sections 的支持也考虑进去。 SwiftUI 6.0 对容器子视图布局的增强支持可以认为是一个小巧的容器自定义布…

Wordpress—一个神奇的个人博客搭建框架

wordpress简介 在当今数字化的时代&#xff0c;拥有一个属于自己的个人博客&#xff0c;不仅可以记录生活点滴、分享专业知识&#xff0c;还能展示个人风采。而在众多的博客搭建框架中&#xff0c;Wordpress 以其强大的功能和灵活性脱颖而出。今天&#xff0c;就让我们一起深入…

spring boot项目日志怎么加?

使用源码LoggerFactory&#xff08;日志工厂类&#xff09; 使用方法&#xff1a;getlogger()中间传入1个类 加在过滤里所以需要传入的是过滤这个类&#xff08;reqfilter.class) 用这个对象调info方法 logger.error是打印错误信息 logger.debug打印debug 结果会增加时间名称等…

LQB焊接超声波部分原理图和焊接说明(勘误)

1、自制的板子的原理图&#xff0c;有一个错误的地方&#xff0c;导致超声波不能正常使用。 下图是实物的原理图存在错误&#xff0c;不小心&#xff0c;自我批评一下。 图中的C6电容330pF的一端接到了VCC&#xff0c;是错误的。 蓝桥杯的原理图是下图&#xff0c;接到GND 因…

【机器学习(十三)】机器学习回归案例之股票价格预测分析—Sentosa_DSML社区版

文章目录 一、背景描述二、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入(二) 特征工程(三) 样本分区(四) 模型训练和评估(五) 模型可视化 三、总结 一、背景描述 股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因…

51单片机数码管循环显示0~f

原理图&#xff1a; #include <reg52.h>sbit dulaP2^6;//段选信号 sbit welaP2^7;//位选信号unsigned char num;//数码管显示的数字0~funsigned char code table[]{ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};//定义数码管显…