当前位置: 首页 > 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组成的…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

比特币:固若金汤的数字堡垒与它的四道防线

第一道防线&#xff1a;机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”&#xff08;Hashing&#xff09;就是一种军事级的加密术&#xff08;SHA-256&#xff09;&#xff0c;能将信函内容&#xff08;交易细节&#xf…...

ABAP设计模式之---“Tell, Don’t Ask原则”

“Tell, Don’t Ask”是一种重要的面向对象编程设计原则&#xff0c;它强调的是对象之间如何有效地交流和协作。 1. 什么是 Tell, Don’t Ask 原则&#xff1f; 这个原则的核心思想是&#xff1a; “告诉一个对象该做什么&#xff0c;而不是询问一个对象的状态再对它作出决策。…...

浏览器工作原理01 [#]Chrome架构:仅仅打开了1个页面,为什么有4个进程

引用 浏览器工作原理与实践 Chrome打开一个页面需要启动多少进程&#xff1f;你可以点击Chrome浏览器右上角的“选项”菜单&#xff0c;选择“更多工具”子菜单&#xff0c;点击“任务管理器”&#xff0c;这将打开Chrome的任务管理器的窗口&#xff0c;如下图 和Windows任务管…...

html - <mark>标签

<mark> 标签在HTML中用于高亮显示文本&#xff0c;通常用于突出显示某些重要的部分。它的默认样式通常是背景色为黄色&#xff0c;但你可以通过CSS自定义其外观。 1. 基本用法 <mark> 标签用于标记文本的高亮显示。它常用于搜索结果中&#xff0c;突出显示匹配的…...

Python爬虫:trafilatura 的详细使用(快速提取正文和评论以及结构,转换为 TXT、CSV 和 XML)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、trafilatura 概述1.1 trafilatura介绍1.2 亮点特色1.3 安装二、基本使用2.1 从URL直接提取内容2.2 输出格式控制2.3 从HTML字符串提取2.4 使用命令行工具三、高级功能3.1 全局设置3.2 提取参数定制3.3 多线程批量处…...