这篇文章主要为大家展示了“如何使用Spark分析拉勾网招聘信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Spark分析拉勾网招聘信息”这篇文章吧。
创新互联建站是一家专注于成都做网站、网站制作与策划设计,临海网站建设哪家好?创新互联建站做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:临海等地区。临海做网站价格咨询:18980820575
假设我们从数据的采集,存储到数据的读取与使用,都是使用传统的语言工具,比如nodejs.
我们如果想知道到底有不同的薪水段有多少招聘职位并从多到少排序,我们可能需要:
新建对象,存储各个公司的数据;
循环读取数据,丰富各个公司的数据;
以薪水为分组,记录各个公司各个职位的信息;
以招聘数量为标准排序;
步骤,还算简单.暂且不提数据集再大些时,内存是极有可能吃不消;但是第2,3步的逻辑细节,就需要不少代码判断,比如如何循环读取文件数据?如果文件名命名是不规律的呢?如果文件数据是损坏的不规律数据呢?文件数据的json,并不是一个直接可用的职位数组,json结构转换的操作,逻辑上对你来说好实现吗?
诚然,用编程语言,没有什么做不了的,只是时间问题;既然谈到了时间,如果有另外一种明显快的多的方式,你会不用吗?
使用Spark实现上述同样的逻辑.以下操作,基于交互编程工具Zeppelin:
val job = sqlContext.read.json("jobs") job.registerTempTable("job") job.printSchema()
%sql SELECT postionCol.salary,COUNT(postionCol.salary) salary_count FROM job LATERAL VIEW explode(content.positionResult.result) positionTable AS postionCol WHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.salary ORDER BY salary_count DESC
真的可以直接使用类似于SQL的语法,进行半结构数据的复杂查询,不知道各位看官,看完有何感想?
如果你的SQL功底,不是特别好,我的建议是:有空多看看文档,有需求时先打英文关键词google
送给有需要的童鞋:
%sql SELECT postionCol.companyFullName,COUNT(postionCol.companyFullName) postition_count FROM job LATERAL VIEW explode(content.positionResult.result) positionTable AS postionCol WHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.companyFullName ORDER BY postition_count DESC
%sql SELECT postionCol.workYear,COUNT(postionCol.workYear) workYears FROM job LATERAL VIEW explode(content.positionResult.result) positionTable AS postionCol WHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.workYear ORDER BY workYears DESC
%sql SELECT postionCol.education,COUNT(postionCol.education) education_count FROM job LATERAL VIEW explode(content.positionResult.result) positionTable AS postionCol WHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.education ORDER BY education_count DESC
%sql SELECT postionCol.companySize,COUNT(postionCol.companySize) company_size_ount FROM job LATERAL VIEW explode(content.positionResult.result) positionTable AS postionCol WHERE content.positionResult.queryAnalysisInfo.positionName="ios" GROUP BY postionCol.companySize ORDER BY company_size_ount DESC
以上是“如何使用Spark分析拉勾网招聘信息”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!