招聘信息数据清洗
文章目录
- 前言
- 代码示例如下
前言
相关知识
为了完成本关任务,你需要掌握:
1.Spark 清洗数据的相关方法,
2.空值列怎么删除;
3.怎么数据切分才能达到想要的数据。
Spark清洗数据相关方法
一、将含有空值的数据删除
1.将含有空值的数据删除;
2.data.drop()
如果不传递列名,不会做任何操作; drop 是用来丢弃列的,而 na.drop
是用来丢弃行的;
//drop函数默认参数any,即行中存在任一个null值都要删除此行
df.na.drop()
df.na.drop("any")
//参数all, 此行所有值都是null才删除此行
df.na.drop("all")//只指定某些列进行空值的删除操作
df.na.drop("all",Seq("name1","name2"))
二、withColumn和split函数
1.withColumn 的第二个参数要传入已有列的 Column 对象,否则会报错;
2.column的表达式只能引用此数据集提供的属性。 添加引用其他数据集的列是错误的
3.split 切分可以用符号、数字、字母或者汉字为分界点进行切分。切分后可以新建一列也可以将原来的列覆盖成新的列。
val d1=df.withColumn("新列名",split(col("原列名"),"/")(0))
三、regexp_replace函数
regexp_replace(source, pattern, replace_string, occurrence)
参数说明:
● source: string 类型,要替换的原始字符串。
● pattern: string 类型常量,要匹配的正则模式,pattern 为空串时抛异常。
● replace_string: string,将匹配的 pattern 替换成的字符串。
● occurrence: bigint 类型常量,必须大于等于0,
大于0:表示将第几次匹配替换成 replace_string,
等于0:表示替换掉所有的匹配子串。
其它类型或小于0抛异常。
regexp_replace 函数举例:
val df1 = df.withColumn("sex", regexp_replace(col("sex"), "无", "不限"))
数据集
/data/workspace/myshixun/step1/DATA 中有 zhaopindata.csv 招聘数据。数据集共 20 个字段,字段说明如下:
字段名 说明 数据类型
id 编号 int
position 职位 varchar
num 招聘人数 int
company 公司名称 varchar
job_type 工作类型 varchar
jobage 工作年限 varchar
lang 语言 varchar
age 年龄 varchar
sex 性别 varchar
education 学历教育 varchar
workplace 工作地点 varchar
worktime 工作时间 varchar
salary 薪资 varchar
welfare 福利待遇 varchar
hr 人事 varchar
phone 电话 int
address 地址 varchar
company_type 公司类型 varchar
industry 行业 varchar
require 岗位要求 varchar
部分数据展示,数据中有列名:
index,position,num,company,job_type,jobage,lang,age,sex,education,workplace,worktime,salary,welfare,hr,phone,address,company_type,industry,require
1,(贷款经理)电话销售,30,厦门冠顶投资有限公司,全职,不限,不限,16岁至30岁,无,初中以上,厦门市同安区、厦门市海沧区、厦门市、厦门市集美区、厦门市湖里区、厦门市翔安区、厦门市思明区,"7.0小时/天,5天/周",5000,五险、住房公积金、带薪年假、年终双薪、绩效奖金、年终分红、通讯补贴、节日福利、专业培训、弹性工作、员工旅游、出国机会、每年多次调薪、全勤奖、不加班、无试用期,陈经理(经理),0592-6086055,湖滨东路6号华龙大厦1509(361000),民营/私营,IT互联网,一站式助贷机构----底薪4000+抽成最高50%。周末双休+五险一金+一天上7小时+法定节假日放假+浮动绩效奖+年终奖+晋升空间+生日会+定期聚餐团建随便做4000工资认真做7000工资勤奋做10000工资拼命做20000工资工作内容:室内办公无需外出,公司提供精准获客资源,纯机器营销,省去手工繁琐操作,通过微信或手机与新老客户沟通,寻找有资金需求的客户。做过电销、淘宝、微商、电商、客服、贷款、保险、房产、卡部优先。不限应届生、学生、兼职、快递员、服务员、送餐外卖、网约车司机等。能够承受销售压力,愿意挑战高薪,上不封顶。优秀精英可转成公司股东或分公司负责人。地址:厦门市思明区湖滨东路6号华龙大厦1509(梧村汽车站、湖滨东路站、BRT火车站、地铁3号线火车站直达)
2,((金融贷款产品销售)),30,厦门冠顶投资有限公司,全职,不限,不限,16岁至30岁,无,初中以上,厦门市翔安区、厦门市思明区、厦门市湖里区、厦门市集美区、厦门市、厦门市海沧区、厦门市同安区,"8.0小时/天,5天/周",5000,五险、住房公积金、带薪年假、年终双薪、绩效奖金、年终分红、通讯补贴、节日福利、专业培训、弹性工作、员工旅游、出国机会、每年多次调薪、全勤奖、不加班、无试用期,陈经理(经理),0592-6086055,湖滨东路6号华龙大厦1509(361000),民营/私营,IT互联网,一站式助贷机构----底薪4000+抽成最高50%。周末双休+五险一金+一天上7小时+法定节假日放假+浮动绩效奖+年终奖+晋升空间+生日会+定期聚餐团建随便做4000工资认真做7000工资勤奋做10000工资拼命做20000工资工作内容:室内办公无需外出,公司提供精准获客资源,纯机器营销,省去手工繁琐操作,通过微信或手机与新老客户沟通,寻找有资金需求的客户。做过电销、淘宝、微商、电商、客服、贷款、保险、房产、卡部优先。不限应届生、学生、兼职、快递员、服务员、送餐外卖、网约车司机等。能够承受销售压力,愿意挑战高薪,上不封顶。优秀精英可转成公司股东或分公司负责人。
3,市场专员(泉州),1,佳格食品(厦门)有限公司,全职,不限,不限,20岁至35岁,女,不限,泉州市,不限,不限,不限,方小姐(HR),0592-6885866-5826,厦门市海沧区三都路99号(中国(福建)自由贸易试验区厦门片区)(361026),台资/港资,住宿餐饮,岗位职责:1、导购招募及导购员培训管理。2、市场活动的提报及执行。3、市场费用之管控。4、赠品及广宣品管理。任职条件:1、女性,年龄35岁以下,大专及以上学历;2、有快速消费品工作经验;3、表达流利,吃苦耐劳;4、电脑操作熟练。
清洗之后的部分数据展示:
99454,销售,2,厦门普斯恩精密机械有限公司,全职,不限,不限,不限,不限,中专,厦门市集美区、厦门市,其他,面议,面议,王先生(经理),0592-5211506,厦门集美区杏林董任路8号(361000)(合则约见、非请勿访),民营/私营,原材料和加工,岗位职责:1.现场客户、来电来邮客户询价的回复、产品性能的解答及后续跟踪维护。努力留住现有客户,不断增加客户数量,扩大客户行业群体,深挖客户需求。2.合同等业务流程中所需资料的签署,备份存档,销售开单,安排送货,货款对账,及时收款。全业务流程的跟踪处理。有异常及时反馈。3.公司安排的其它事宜。任职要求:1.性格开朗,品行端正,具备良好的沟通能力与服务意识。2.具备良好的团队合作精神。3.亲和力佳,擅长与客户沟通。4.大专以上学历,学习能力强,普通话标准,熟练运用OFFICE,懂CAD优先考虑。5.有塑料行业从业经验优先。
99461,日语和英文国际业务代表,2,厦门德瑞雅喷码科技有限公司,全职,一年工作经验以上,不限,23岁至35岁,不限,大专,厦门市湖里区,"7.5小时/天,5天/周",7000,五险、住房公积金、商业保险、带薪年假、年终双薪、住房补贴、通讯补贴、高温补贴、节日福利、专业培训、定期体检、员工旅游、每年多次调薪、工作制服,林小姐(人事),(合则约见、谢绝来电),厦门市湖里区湖里大道56号第七层西侧(361006)(合则约见、非请勿访),民营/私营,电子技术,任职要求:1.大专以上学历,英语、日语熟练;2.有良好的表达能力;3.有相关工业产品销售/服务或海外销售经验优先考虑,4.具有与客户沟通协调的能力、能适应在一定压力下工作5.良好沟通能力和团队合作能力岗位职责:1.重点客户追踪和电子邮箱的维护;2.行业客户信息收集及客户的分类;3.定期给客户发送产品的最新信息;4.客户现场设备报修和工程师协调调动。待遇:1.五天工作制2.五险一金3.年假4.体检5.年终奖6.公司旅游
99693,维修电工,3,厦门花开富贵物业管理有限公司,全职,不限,不限,不限,不限,不限,厦门市湖里区,"8.0小时/天,5天/周",5000,五险、住房公积金、商业保险、带薪年假、年终双薪、绩效奖金、高温补贴、节日福利、定期体检,许小姐/张小姐(HR),0592-5098277,厦门市湖里区恒禾七尚5号门(361008)(合则约见、非请勿访),台资/港资,物业管理商业中心,学历要求: 不限 职位性质: 全职 招聘对象: 不限年龄要求: 20岁至40岁工作地点: 厦门市湖里区参考月薪: 5000-5400元/月(必须持证上岗,高压证、电梯管路员证)上班时间: 8.0小时/天 6天/周 正常白班薪资福利: 五险、住房公积金、商业保险
编程要求
根据提示,在右侧编辑器 #Begin-End# 区间补充代码,
根据下列要求完成数据清洗,要求如下:
1.读取 /data/workspace/myshixun/step1/DATA 下面的 zhaopindata.csv文件,分隔符为, ;
2.去除首列;
3.将性别列中的无修改成不限;
4.将职位类型列中的毕业生见习修改成实习;
5.将教育列中的学历提取出来,保持数据的统一性,如:大专以上 变为 大专;
6.将薪资列和福利待遇列中的不限修改成面议;
7.将招聘人数列中的若干修改成 3 ;
8.将工作时间列和公司类型中的不限修改成其他;
9.将清洗过的数据保存到(/root/files/data)下,保存类型为csv。
考核说明
1.清洗之后的数据一共有多少行;
2.重复行是否删除;
3.任务要求是否都按照要求进行修改;
4.清洗之后的数据文件是否保存到规定的文件路径下。
代码示例如下
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
object zhaopin_clean {def main(args: Array[String]): Unit = {var conf = new SparkConf().setMaster("local[*]").setAppName("SparkTest")var sc = new SparkContext(conf)val spark:SparkSession = SparkSession.builder().config(conf).getOrCreate()//************* Begin *************val df = spark.read.format("csv")//将第一行清除掉.option("header","true")//读取要清洗的数据.load("/data/workspace/myshixun/step1/DATA/zhaopindata.csv").toDF()//将性别列中的无修改成不限val df1 = df.withColumn("sex", regexp_replace(col("sex"), "无", "不限"))//将职位类型列中的毕业生见习修改成实习val df2=df1.withColumn("job_type", regexp_replace(col("job_type"), "毕业生见习", "实习"))//将教育列中的本科,专科提取出来,保持数据的统一性val df3=df2.withColumn("education",split(col("education"),"以")(0))//将薪资列中的不限修改成面议val df4=df3.withColumn("salary",regexp_replace(col("salary"),"不限","面议"))//将福利待遇列中的不限修改成面议val df5=df4.withColumn("welfare",regexp_replace(col("welfare"),"不限","面议"))//将招聘人数列中的若干修改成3val df6=df5.withColumn("num",regexp_replace(col("num"),"若干|不限","3"))//将工作时间列中的不限修改成其他val df7=df6.withColumn("worktime",regexp_replace(col("worktime"),"不限","其他"))//将公司类型中不限改成其他val df8=df7.withColumn("company_type",regexp_replace(col("company_type"),"不限","其他"))df8.distinct().coalesce(1).write.csv("/root/files/data")//#************** End **************#spark.stop()}
}
相关文章:

招聘信息数据清洗
文章目录 前言代码示例如下 前言 相关知识 为了完成本关任务,你需要掌握: 1.Spark 清洗数据的相关方法, 2.空值列怎么删除; 3.怎么数据切分才能达到想要的数据。 Spark清洗数据相关方法 一、将含有空值的数据删除 1.将含有空值的数据删除&a…...

机器学习——支持向量机(SVM)(1)
目录 一、认识SVM 1. 基本介绍 2. 支持向量机分类器目标 二、线性SVM分类原理(求解损失) 三、重要参数 1. kernel(核函数) 2 .C(硬间隔与软间隔) 四、sklearn中的支持向量机(自查&#…...

Elastic Observability 8.15:AI 助手、OTel 和日志质量增强功能
作者:来自 Elastic Alex Fedotyev, Tom Grabowski, Vinay Chandrasekhar, Miguel Luna Elastic Observability 8.15 宣布了几个关键功能: 新的和增强的原生 OpenTelemetry 功能: OpenTelemetry Collector 的 Elastic 分发:此版本…...

Unity3D ECS架构的优缺点详解
前言 Unity3D作为一款强大的游戏开发引擎,近年来在性能优化和架构设计上不断进化,其中ECS(Entity-Component-System)架构的引入是其重要的里程碑之一。ECS架构通过重新定义游戏对象的组织和处理方式,为开发者带来了诸…...

理解Go语言中多种并发模式
Go 的同步原语使实现高效的并发程序成为可能,并且选择合适的同步原语和并发模式可以更加容易地实现并发的可能,减少错误的发生。这里谈论的并发模式是只在 Go 语言中常见的并发的“套路” ,一种可解决某一类通用场景和问题的惯用方法。 1. 并发模式概述 我们先来回顾下同步…...

C++ primer plus 第17 章 输入、输出和文件:文件输入和输出03:文件模式:二进制文件
系列文章目录 17.4.5 文件模式 程序清单17.18 append.cpp 程序清单17.19 binary.cpp 文章目录 系列文章目录17.4.5 文件模式程序清单17.18 append.cpp程序清单17.19 binary.cpp17.4.5 文件模式1.追加文件来看一个在文件尾追加数据的程序。程序清单17.18 append.cpp2.二进制文…...

网络安全之sql靶场(11-23)
sql靶场(11-23) 目录 第十一关(post注入) 第十二关 第十三关 第十四关 第十五关 第十六关 第十七关 第十八关 第十九关 第二十关 第二十一关 第二十二关 第二十三关 第十一关(post注入) 查看…...

WordPress网站被入侵,劫持收录事件分析
7.15,网站被入侵,但是直到7月17日,我才发现被入侵。 16日,17日正常更新文章,17日查询网站收录数据时,在站长资源平台【流量与关键词】查询上,我发现了比较奇怪的关键词。 乱码关键词排名 起初…...

原生js: 实现三个水平tab按钮, 默认第一个上面有class, 点击另外的实现class=‘cur‘的切换的效果
问: <ul><li class"cur">热门问题</li><li>订阅问题</li><li>使用问题</li></ul> 这是我的代码, 这是我的代码: // 遍历 helpInfoClass 数组helpInfoClass.forEach((item, index) > {var itemId item[0];var i…...

C#语言基础速成Day07
“知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。” 目录 前言文章有误敬请斧正 不胜感恩!||Day07 C#常见数据结构:1. 集合(Collection)1.1 **List<T>**1.2 **H…...

jvm运行时常量池溢出的原因
Java虚拟机(JVM)的运行时常量池(Runtime Constant Pool)是方法区的一部分,用于存储类和接口的常量池表,包括字面量和对类型、字段和方法的符号引用。运行时常量池溢出通常指的是常量池的内存使用达到了JVM设…...
floyd算法详解
算法是一种用于求解所有顶点对之间的最短路径问题的算法,特别适用于稠密图。下面是一个使用C实现的算法示例: #include <iostream> #include <climits> // For INT_MAXusing namespace std;const int V 4; // 图的顶点数// 定义一个函数来…...

Web前端性能优化的方向
减少dom渲染复杂列表优化缓存优化首页背景图片加载慢,可以放在服务器上,读取绝对路径900k的图片大小有些大,可以对图片进行压缩,tinypng网站压缩、熊猫压缩、bing域名下的图片url后面带参数w、h、qlt剪裁下拉框数据较多进行懒加载…...

【面试题】设计模式-责任链模式
设计模式-责任链模式 前言责任链简历案例代码小结 前言 我们知道,设计模式是面试时经常被问到的问题之一,这是因为设计模式能够体现出代码设计的美感,且在很多框架的底层也都会使用到各种设计模式,所以对设计模式的考察ÿ…...

JavaEE 第8节 单例模式详解
目录 概念 饿汉模式 懒汉模式 懒汉模式在多线程环境下的优化 1.线程安全问题 2.效率问题 3.指令重排序导致的问题 1)为什么要进行指令重排序? 2)指令重排序在上述代码为什么会构成问题? 导读: 单例模式是一种…...

OpenAI 发布 GPT-4o 模型安全评估报告:风险等级为“中等”|TodayAI
OpenAI 近日发布了最新的 GPT-4o 系统卡,这是一份研究文件,详细介绍了公司在推出其最新 AI 模型之前所进行的安全措施和风险评估。根据该评估报告,GPT-4o 的总体风险等级被评定为 “中等” 。 GPT-4o 于今年 5 月首次公开发布。在其发布之前…...

学习前端面试知识
2024-8-9 打卡第十天 学习视频链接 js延迟加载 延迟加载:等页面加载完成后再进行加载提高页面加载速度defer属性,同步加载,让脚本与文档同步解析,顺序执行,当文档解析完成再执行defer,执行完再执行脚本&…...

Leetcode JAVA刷刷站(9)回文数
一、题目概述 二、思路方向 在Java中,判断一个整数是否为回文数,可以通过将该整数转换为字符串,然后比较字符串与其反转后的字符串是否相同来实现。但这种方法在整数非常大时可能不太高效,因为它依赖于字符串操作。一个更高效的方…...

数据结构算法
⩕ 单调栈 1、概念 对于一个栈,维持其单调性,有两种情况,单调递增栈:由栈底到栈顶单调递增 单调递减栈:由栈底到栈顶单调递减 2、核心模板( 单调递增栈 ) stack<int> stk; void …...

WordPress个性化站点
这个信息爆炸的时代,拥有一个能够迅速传达信息、展示个性、并能够与世界互动的在线平台,已成为企业和个人的基本需求。WordPress以其无与伦比的易用性和强大的扩展性,成为了构建此类平台的首选工具。而LNMP是由Linux、Nginx、MySQL和PHP组成的…...

GESP C++ 2024年03月一级真题卷
一、单选题(每题 2 分,共 30 分) 第 1 题 C表达式 (3 - 2) * 3 5 的值是( )。 A. -13 B. 8 C. 2 D. 0 答案:B 解析:略 第 2 题 C 语句 cout << "5%2" << 5 % 2 执行后的输出是…...

Linux驱动开发基础(Hello驱动)
所学内容来自百问网 目录 1. 文件在内核中的表示 2. 打开字符设备节点时,内核中也有对应的struct file 3. 编写驱动程序步骤 4. 相关知识点 4.1 涉及函数解析 4.2 module_init/module_exit的实现 4.3 register_chrdev的内部实现 4.4 class_destroy/device_…...

centos7安装 ES集群 elasticsearch
这里写自定义目录标题 编写启动脚本 elasticsearch.sh启动可能报错:elasticsearch 7.10启动报错 bootstrap checks failed解决方法问题原因:注意 退出xshell,重新登录: 上面两个配置项改完后,ES启动用户(es 或root) **…...

互联网应用主流框架整合【Redis数据结构及常用命令】
在大部分情况下我们使用Redis只是执行一些简单的命令操作,通常无需区分是否是在一个连接池里的同一个链接去执行,如果需要执行多条命令,需要保证命令在同一个链接里完成,则采用SessionCallback接口操作即可 Redis数据结构-字符串…...

GORM 自动迁移与命名策略
在现代软件开发中,数据库结构的维护和迁移是常见的挑战之一。GORM,作为 Go 语言中强大的 ORM 库,提供了自动迁移功能,帮助开发者轻松地管理数据库表结构的变更。此外,GORM 还允许开发者通过命名策略(Naming…...

python社会科学问题研究的计算实验
实验十五:社会科学问题研究的计算实践 1.实验目标及要求 (1)掌握网络视角 (2)掌握社会网络基础内容 (3)掌握友谊悖论 2.实验主要内容 随机生成一次符合社会网络特征的网络,通过计…...

Element Plus 发布 2.8.0
功能特性 组件更新 [color-picker] alpha-slider a11y (#14245 by tolking)添加 mention 组件 (#17586 by Fuphoenixes)[tree-v2] 添加 scrollTo 方法 (#14050 by kaine0923)[drawer] 添加 append-to 属性 (#17761 by tolking)[table] tree children 添加严格检查 (#13519 by t…...

解释区块链技术的应用场景和优势-水文
区块链技术是一种去中心化的分布式账本技术,其应用场景和优势如下: 金融领域:区块链可以用于加密货币交易,提供安全的、去中心化的支付系统。它也可以用于股票、债券和其他金融交易的记录和结算,提高交易的透明度和效率…...

等保测评基础知识(一)
1、时间类: 网络安全法: 2017年6月1日等保2.0实施时间: 2019年12月1日密码法: 2020年1月1日个人信息保护法: 2021年11月1日,数据安全法实施时间: 2021年9月1日关键信息基础…...

股指期货套期保值中的展期管理有哪些?
在复杂的金融市场环境中,展期作为一种重要的风险管理工具,被广泛应用于期货交易中,特别是当投资者需要对长期资产进行套期保值时。展期的核心思想在于,通过连续替换高流动性的近月期货合约来替代流动性较差的远月合约,…...