当前位置: 首页 > news >正文

招聘信息数据清洗

文章目录

  • 前言
    • 代码示例如下


前言

相关知识
为了完成本关任务,你需要掌握:
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

“知止而后有定&#xff0c;定而后能静&#xff0c;静而后能安&#xff0c;安而后能虑&#xff0c;虑而后能得。” 目录 前言文章有误敬请斧正 不胜感恩&#xff01;||Day07 C#常见数据结构&#xff1a;1. 集合&#xff08;Collection&#xff09;1.1 **List<T>**1.2 **H…...

jvm运行时常量池溢出的原因

Java虚拟机&#xff08;JVM&#xff09;的运行时常量池&#xff08;Runtime Constant Pool&#xff09;是方法区的一部分&#xff0c;用于存储类和接口的常量池表&#xff0c;包括字面量和对类型、字段和方法的符号引用。运行时常量池溢出通常指的是常量池的内存使用达到了JVM设…...

floyd算法详解

算法是一种用于求解所有顶点对之间的最短路径问题的算法&#xff0c;特别适用于稠密图。下面是一个使用C实现的算法示例&#xff1a; #include <iostream> #include <climits> // For INT_MAXusing namespace std;const int V 4; // 图的顶点数// 定义一个函数来…...

Web前端性能优化的方向

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

【面试题】设计模式-责任链模式

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

JavaEE 第8节 单例模式详解

目录 概念 饿汉模式 懒汉模式 懒汉模式在多线程环境下的优化 1.线程安全问题 2.效率问题 3.指令重排序导致的问题 1&#xff09;为什么要进行指令重排序&#xff1f; 2&#xff09;指令重排序在上述代码为什么会构成问题&#xff1f; 导读&#xff1a; 单例模式是一种…...

OpenAI 发布 GPT-4o 模型安全评估报告:风险等级为“中等”|TodayAI

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

学习前端面试知识

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

Leetcode JAVA刷刷站(9)回文数

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

数据结构算法

⩕ 单调栈 1、概念 对于一个栈&#xff0c;维持其单调性&#xff0c;有两种情况&#xff0c;单调递增栈&#xff1a;由栈底到栈顶单调递增 单调递减栈&#xff1a;由栈底到栈顶单调递减 2、核心模板&#xff08; 单调递增栈 &#xff09; stack<int> stk; void …...

WordPress个性化站点

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

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...