千家信息网

如何使用Spark分析拉勾网招聘信息

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要为大家展示了"如何使用Spark分析拉勾网招聘信息",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用Spark分析拉勾网招聘信息"这篇文章
千家信息网最后更新 2024年11月22日如何使用Spark分析拉勾网招聘信息

这篇文章主要为大家展示了"如何使用Spark分析拉勾网招聘信息",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用Spark分析拉勾网招聘信息"这篇文章吧。

如果用传统编程语言工具?

假设我们从数据的采集,存储到数据的读取与使用,都是使用传统的语言工具,比如nodejs.

我们如果想知道到底有不同的薪水段有多少招聘职位并从多到少排序,我们可能需要:

  1. 新建对象,存储各个公司的数据;

  2. 循环读取数据,丰富各个公司的数据;

  3. 以薪水为分组,记录各个公司各个职位的信息;

  4. 以招聘数量为标准排序;

步骤,还算简单.暂且不提数据集再大些时,内存是极有可能吃不消;但是第2,3步的逻辑细节,就需要不少代码判断,比如如何循环读取文件数据?如果文件名命名是不规律的呢?如果文件数据是损坏的不规律数据呢?文件数据的json,并不是一个直接可用的职位数组,json结构转换的操作,逻辑上对你来说好实现吗?

诚然,用编程语言,没有什么做不了的,只是时间问题;既然谈到了时间,如果有另外一种明显快的多的方式,你会不用吗?

使用Spark进行分析

使用Spark实现上述同样的逻辑.以下操作,基于交互编程工具Zeppelin:

1.读取数据
val job = sqlContext.read.json("jobs")job.registerTempTable("job")job.printSchema()

2.获取各个薪水段职位数量,并排序
%sqlSELECT  postionCol.salary,COUNT(postionCol.salary) salary_countFROM jobLATERAL VIEW explode(content.positionResult.result) positionTable AS postionColWHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.salaryORDER BY salary_count  DESC

真的可以直接使用类似于SQL的语法,进行半结构数据的复杂查询,不知道各位看官,看完有何感想?

如果你的SQL功底,不是特别好,我的建议是:有空多看看文档,有需求时先打英文关键词google

几个你可能感兴趣的数据的sparkSQL示例查询

送给有需要的童鞋:

按公司名显示某职位的招聘数量
%sqlSELECT  postionCol.companyFullName,COUNT(postionCol.companyFullName) postition_countFROM jobLATERAL VIEW explode(content.positionResult.result) positionTable AS postionColWHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.companyFullNameORDER BY postition_count  DESC

显示某一职位对工作年限的要求
%sqlSELECT  postionCol.workYear,COUNT(postionCol.workYear) workYearsFROM jobLATERAL VIEW explode(content.positionResult.result) positionTable AS postionColWHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.workYearORDER BY workYears  DESC

显示某一职位对学历的要求
%sqlSELECT  postionCol.education,COUNT(postionCol.education) education_countFROM jobLATERAL VIEW explode(content.positionResult.result) positionTable AS postionColWHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.educationORDER BY education_count  DESC

显示某一职位各个公司的规模
%sqlSELECT  postionCol.companySize,COUNT(postionCol.companySize) company_size_ountFROM jobLATERAL VIEW explode(content.positionResult.result) positionTable AS postionColWHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.companySizeORDER BY company_size_ount  DESC

以上是"如何使用Spark分析拉勾网招聘信息"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0