pyspark

news2024/11/14 13:49:51

连接命令:

 pyspark  --master spark://node1:7077 

一个application 大任务可以分解成 多个小任务 jobs, 一个job又可以分解成多个 stages 阶段,

一个stage又可以分解成 多个tasks(可以认为是两个线程)

standalone Zookeeper 高可用HA,集群中存在多个master,但最先注册的成为active,其它是standby,集群包含Worker、Driver、Application

Spark on Yarn :

master由resource manager 担任

work由node manager担任

Driver在yarn容器的内部或客户端线程中,executors也在yarn容器内,sparkContext入口环境对象是有driver构建的,

spark on yarn的两种部署模式:cluster模式【driver在yarn容器内,通讯耗损低,运行效率高】,client模式【driver在spark-submit提交的节点上,日志在客户端,调试方便】

需要:

spark客户端工具:如 spark-submit

启动命令: pyspark  --master  yarn

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

sparksql on hive

1.启动sparkthriftserver

./start-thriftserver.sh --hiveconf hive.server2.thrift.port=10000 --master yarn --driver-class-path /data/spark-2.2.0-bin-hadoop2.7/jars/mysql-connector-java-5.1.43-bin.jar --executor-memory 5g --total-executor-cores 5

启动sparkthriftserver后,后台默认会执行spark-sql命令,实际上是用spark-submit向yarn提交一个任务。这样就会在yarn的8088页面任务栏中起一个常驻任务,用来执行spark sql。

2、连接spark

./beeline -u jdbc:hive2://172.168.108.6:10001 -n root

3、这里的sql可以在8088页面看到执行过程

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

 wordcount pyspark 实现:

result = sc.textFile("hdfs://text.txt").flatMap(lambda line : line.split(" ")).map(lambda x :(x,1)).reduceByKey(lambda x,y : a+b).collect()

print(result)   --包括前面的collect()是Driver运行的

Python on Spark 执行原理

RDD 弹性-分区可以增删和硬、内存

特性:

1.分区  --物理实体  分区组合成-》逻辑对象RDD

2.计算方法作用在每个分区上

3.一系列依赖关系-依赖链条-RDD血缘关系

4.K-v型的RDD可以有分区器(涉及shuffle)-默认分区-hash分区规则

5.分区规划尽量靠近数据所在的服务器

SparkContext 是操作RDD的上下文

SparkSession 是升级版,可以控制DF和DS

sc.parallelize() 创建RDD,本地转向分布式

glom的作用是将同一个分区里的元素合并到一个array里,显示元素所在的分区

map是一个输入元素对应一个输出元素

FlatMap是一个输入元素对应多个输出元素

wholetextfile 小文件读取 API 优化

算子 就是 作用于 分布式对象上的方法

转换算子:返回值是RDD, lazy 加载 执行计划

action算子:指令,返回值根据RDD中元素的类型决定

res1=rdd.count()  print(res1) 

collect()使用时需考虑Driver内存的大小

fold带有初始值的聚合,分区内和分区间都会基于初始值进行聚合 fold(10,lamdba x,y:x+y)

故分区内聚合的结果进行分区间聚合是以初始值为基础的

first take

top(N) 对RDD元素进行降序排序,取最大的前N个,对象内置的比较函数

takeSample(true【允许重复采样,不是内容的重复】,抽样个数,随机数种子)  collect可能把Driver撑爆,使用其代替

takeOrdered(数据的个数,对排序的数据进行更改) 正反向排序 

foreach()执行我提供的逻辑(map),但没有返回值

saveAsTextFile 写出数据,本地或HDFS ,有多少个分区,结果就有多少个文件,与Driver无关,看存放的数据的executors直接写出。

mapPartitions一次操作一个分区,意味着读取的次数是分区数,明显比map按元素数读取次数要少,网络IO小,分区间

foreachPartition

partitionBy 自定义分区操作(重新分区后有几个分区,自定义分区规则,函数)

repartition(N)=coalesce(N,shuffle=true) 重新分区,只修改分区数

无状态可并行

有状态串行

广播变量:序列化+网络传输

一个executor(进程)可以托管多个分区(线程)

当一个变量在一个executor接受过后,后面其它分区要就共享

使用:

b=sc.broadcast(变量)

v = b.value #取出来

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

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

相关文章

使用Gradio库创建交互式滑块组件

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

QT DAY3

完善文本编辑器 1.mainwindow.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QDebug> #include <QIcon> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QMessageBo…

如何用Stable Diffusion模型生成个人专属创意名片?

目录 1 什么是二维码&#xff1f;2 什么是扩散模型&#xff1f;3 Stable Diffusion环境搭建4 开始制作创意名片结语 1 什么是二维码&#xff1f; 二维码是一种用于存储和传输信息的方便而广泛使用的图像编码技术。它是由黑色方块和白色空白区域组成的二维图形&#xff0c;可以…

光镊背后的电磁理论 | 涡旋电磁波在无线通信系统中的应用

2018年诺贝尔物理学奖于北京时间10月2日17点50分正式揭晓&#xff0c;发明光镊技术的美国物理学家&#xff0c;阿瑟阿什金&#xff08;Arthur Ashkin&#xff09;&#xff0c;以及开创了啁啾脉冲放大技术的唐娜斯特里克兰&#xff08;Donna Strickland&#xff09;、 热拉尔穆鲁…

持之以恒,安之有度 | 持安科技2周年!

新征程 新未来 持安的同学们已经一起走进 第三个年头啦 近日&#xff0c;持安 北京 上海 深圳 所有公司成员齐聚一堂 共 同 庆 祝 持安科技 成立2周年 持安一体化零信任平台 &#xff0c;引领应用层零信任落地新局面 2021年&#xff0c;何艺&#xff08;持安创始人兼CE…

经典轻量级神经网络(3)ShuffleNet V1及其在Fashion-MNIST数据集上的应用

经典轻量级神经网络(3)ShuffleNet V1及其在Fashion-MNIST数据集上的应用 1 ShuffleNet V1的简述 ShuffleNet 提出了 1x1分组卷积通道混洗 的策略&#xff0c;在保证准确率的同时大幅降低计算成本。 ShuffleNet 专为计算能力有限的设备&#xff08;如&#xff1a;10~150MFLOP…

开发uniapp苹果app,苹果签名证书的创建方法

在uniapp云打包界面&#xff0c;打包苹果app&#xff0c;需要私钥证书p12文件&#xff0c;还需要证书profile文件和证书密码。 这两个文件到底是从什么地方获取的呢&#xff1f;答案是这两个证书需要在苹果开发者中心生成&#xff0c;下面我们这篇教程&#xff0c;将教会大家如…

Java小白的学习之路——day12

目录 一、final 什么是final&#xff1f; 二、接口概述 什么是接口&#xff1f; 与抽象类的区别 常量接口 接口传参多态 四、内部类 什么是内部类&#xff1f; 成员内部类 静态内部类 局部内部类 一、final 什么是final&#xff1f; final从字面意思来看时最终的&a…

你真的了解JS垃圾回收机制吗?

目录 前言 堆栈内存管理 JS垃圾回收机制 标记清除&#xff08;Mark and Sweep&#xff09; 标记阶段 清除阶段 标记清除的特点 优点 缺点 引用计数&#xff08;Reference Counting&#xff09; 引用计数器的维护 引用计数的跟踪 垃圾回收的触发 回收对象 引用计…

视频转音频MP3格式怎么做?教你几种转换小妙招

当我们需要编辑视频中的声音&#xff0c;例如去除噪音、调整音量、加入配乐等&#xff0c;此时需要先将视频中的音频提取出来进行编辑&#xff0c;再将编辑后的音频重新与视频合并&#xff0c;以便达到一个最佳效果。那么怎么将视频转换成MP3格式的音频文件呢&#xff1f;教大家…

SpringBoot项目多模块打包部署Docker实战

前言 我们好多程序员都只关注功能代码的编写&#xff0c;在一些运维工作上则显得略有不足。这篇文章通过介绍最常见的Maven管理的Spring Boot项目多模块打包部署Docker来介绍一下项目部署过程中操作流程和几个需要注意的点。文章假设读者有前面提到的技术点的前置知识&#xf…

C#(五十八)之C#List

前几天&#xff0c;看同事写的代码中有list相关的字眼&#xff0c;百度了一下&#xff0c;原来是C#中list泛型集合。 了解一下。 List&#xff1a;泛型集合&#xff0c;List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型…

Maven工程分模块开发讲解及入门案例

1.分模块开发的意义 一个模块只做自己对应的功能&#xff0c;提升开发效率&#xff0c;将一个工程拆分成若干个子模块方便之间相互调用&#xff0c;接口共享&#xff0c;降低耦合度提高代码复用率。 2.分模块开发入门案例 下面将domain这个模块从当前模块当中给拆分出来。 …

开心档之CSS 测验

目录 CSS 测验 CSS 测验 CSS测验是一种衡量前端开发人员对CSS的熟练程度的测试。通过CSS测验&#xff0c;可以评估一个人对CSS语言的掌握程度和应用能力&#xff0c;帮助公司或招聘方挑选合适的人才。下面将介绍如何进行CSS测验以及一些常见的CSS考题。 一、CSS测验的类型 1…

OpenCV 入门教程:寻找和绘制轮廓

OpenCV 入门教程&#xff1a;寻找和绘制轮廓 导语一、寻找轮廓二、绘制轮廓三、示例应用3.1 目标检测和定位3.2 图像分割 总结 导语 寻找和绘制轮廓是图像处理中常用的技术之一&#xff0c;用于识别、定位和分析图像中的目标区域。在 OpenCV 中&#xff0c;寻找和绘制轮廓可以…

「2024」预备研究生mem-行程问题

一、行程问题 二、课后题 往返 上山下山

LeetCode[75]颜色分类

难度:Medium 题目&#xff1a; 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库…

【前端面试专栏】用户输入网址到页面返回都发生了什么?

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

软件安全测试流程与方法分享(下)

安全测试是在IT软件产品的生命周期中&#xff0c;特别是产品开发基本完成到发布阶段&#xff0c;对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性&#xff0c;也是CNAS测试认证中非常重要的项目&#xff0c;本系列文章我们与大家…

linux 信号原理 信号处理设置signal, 信号发送kill,信号等待sigsuspend,信号阻塞sigprocmask,一网打尽信号使用

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 概述 信号是一种软中断的方式&#xff0c;让进程陷入中断处理调…