202110201026 - pyspark设置参数

news/2025/3/20 19:40:41/文章来源:https://www.cnblogs.com/route/p/18783810

使用pyspark提交spark任务时,为提高单个任务使用的CPU核数(默认是1),需对参数进行设置。spark-submit --help中可以指定的参数有限,需要在代码中指定参数值。如下:

conf = SparkConf()
conf.setAppName('test_mean_shift')
conf.set('spark.task.cpus', '5')sc = SparkContext(conf=conf)

遇到的问题:

Executor cores must not be less than spark.task.cpus

--executor-cores 默认值是1 分配executor的资源,然后内部分配task。
例如executor.cores设置为10,默认情况下可启动10个task
若设置task.cpus为5,则可启动2个task

参考自:

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSessiondef create_sc():sc_conf = SparkConf()sc_conf.setMaster('spark://master:7077')sc_conf.setAppName('my-app')sc_conf.set('spark.executor.memory', '2g')  #executor memory是每个节点上占用的内存。每一个节点可使用内存sc_conf.set("spark.executor.cores", '4') #spark.executor.cores:顾名思义这个参数是用来指定executor的cpu内核个数,分配更多的内核意味着executor并发能力越强,能够同时执行更多的tasksc_conf.set('spark.cores.max', 40)    #spark.cores.max:为一个application分配的最大cpu核心数,如果没有设置这个值默认为spark.deploy.defaultCoressc_conf.set('spark.logConf', True)    #当SparkContext启动时,将有效的SparkConf记录为INFO。print(sc_conf.getAll())sc = SparkContext(conf=sc_conf)return sc
from pyspark.conf import SparkConf
conf=SparkConf()conf.set('spark.sql.execute.arrow.enabled','true')if os.getenv("APP_MODE") == 'prod':"""集群环境"""url = 'spark://master:7077'conf.setAppName('prod-practice-info').setMaster(url).set("spark.driver.maxResultSize", "12g").set("spark.executor.memory", '4g')else:"""本地环境"""print("本地环境")url = 'local[*]'conf.setAppName('prod-practice-info').setMaster(url)spark = SparkSession.builder. \config(conf=conf).\getOrCreate()

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

202110211215 - IT项目管理笔记

IT项目管理中的百慕大 资源 、范围、进度 三角平衡 项目管理 -- 做事 启动、规划、执行、控制、收尾 项目管理 -- 四个层次: 复杂的事情简单化:分解 简单的事情量化:临界值 量化的事情专业化:规律 专业的事情模板化:框架模板 项目: 为创造特定产品或服务的一项有时限的任…

k8s拉取私有镜像的2种方式

k8s 在拉取私有镜像时 ,传递认证信息目录通过secret通过ServiceAccount 通过secret01-image-pull.yamlkind: Pod apiVersion: v1 metadata:name: imagepull-nginxlabels:group: imagepull spec:containers:- name: nginximage: registry.cn-beijing.aliyuncs.com/hkui_dev/ngi…

202110111235 - 软件工程笔记

1. 概述 1.1 开发只占冰山一角 1.2 计算机科学、数学,工程,管理 1.3 软件开发的本质:实现问题域中的概念和处理逻辑 到 运行平台的概念和处理逻辑的映射。系统建模 需求 -> 设计 -> 实现1.4 软件工程的目标:生产具有正确性、可用性、以及开销合宜的产品。 1.5 软件工…

202109060657 - hadoop架构和读写流程

1. 整体架构 hdfs架构zkmonode高可用。HA的工作原理?是否需要每个datanode监听zk?namenodeNameNode(nn):Hdfs集群的管理者,Master 管理Hdfs的名称空间(NameSpace) 维护副本策略 记录文件块(Block)的映射信息 负责处理客户端读写请求datanodeDataNode:NameNode下达命令,…

基于风险的完整性和检查建模(RBIIM)MATLAB仿真

1.程序功能描述 基于风险的完整性和检查建模(Risk-Based Integrity and Inspection Modeling ,RBIIM)MATLAB仿真,对比prior density,posterior perfect inspection,posterior imp inpection,cummulative posterior imperfect inspection四个指标。 2.测试软件版本以及…

202108151156 - kafka消费积压案例

0. 背景 上游厂家生产信令数据,我方消费kafka数据,过滤后插入HBase。 上游生产的信令数据分了4个主题,每个主题有若干分区,这4个主题的数据消费后都插入同一张HBase表。 问题:kafka消息积压达到百亿。 以下以topic1为例,有6个分区。 1. 查看消费滞后情况 kafka-consumer-…

mysql 多表怎么连接的

前言 简单描述一下多表怎么连接的。 正文 首先,我们得抛开我们一些自以为是的想法。 我想过这个问题,就是为什么我们背乘法口诀的时候,我们总是背: 22 = 4, 99=81 这样背下去,似乎这是口诀。然而这是缓存,不是计算,既然不是计算那么就不是逻辑学。 我们理所当然的想9*9…

202108120808 - 类加载器及双亲委派机制

Bootstrap ClassLoader 这是加载器中的大 Boss,任何类的加载行为,都要经它过问。它的作用是加载核心类库,也就是 rt.jar、resources.jar、charsets.jar 等。当然这些 jar 包的路径是可以指定的,-Xbootclasspath 参数可以完成指定操作。 这个加载器是 C++ 编写的,随着 JVM …

keil仿真时导出数据操作

keil仿真时导出数据操作 save D:\savedata.txt 0x20001013,0x20001035

spring-boot-starter-validation

官方提供的注解 spring-boot-starter-validation 是 Spring Boot 提供的一个 starter,是一个用于验证 Java Bean 的标准,它提供了一套注解和相应的运行时 API 来定义和执行校验规则。 具体来说,当你在项目中引入 spring-boot-starter-validation 后,你可以使用一系列预定义…

省选算法复习

省选算法复习 1. 线段树优化建图 当我们需要向区间内所有点连边或者从区间中所有点连到某个点的时候,便可以使用线段树来优化,如果需要从区间每一个点连到另一个区间每一个点的话,加一个虚点就好了。 这不是一个很困难的技巧,关键在于要建模。 P5471 [NOI2019] 弹跳 - 洛谷…

fastadmin订单父子表管理端

fastadmin后台父子表使用方法 发布于 2021-01-22 12:48:10fastadmin后台的所有表格都是支持父子表配置的,只需要简单修改一下对应的JS即可,下面直接进入主题。示例是我的全国省市行政区划表,是从国家统计局网站采集下来的,共五级行政数据,非常适合用来做父子表,按照级别一…