2023_Spark_实验十七:导入招聘大数据(项目)

一、爬虫爬取的招聘网站数据

二、在MySQL中创建空表

sql 复制代码
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for jd_jobs
-- ----------------------------
DROP TABLE IF EXISTS `jd_jobs`;
CREATE TABLE `jd_jobs` (
  `job_name` text,
  `job_date` text,
  `minSale` text,
  `maxSale` text,
  `job_city` text,
  `job_area` text,
  `company_nature` text,
  `company_size_min` text,
  `company_size_max` text,
  `company_Industry` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

三、通过Spark导入招聘数据到MySQL中

以下是完整代码:

Scala 复制代码
import java.util.Properties



import com.niit.util.{LoggerLevel, SparkUnit}



object SparkSQL_MySQL extends LoggerLevel {

def main(args: Array[String]): Unit = {

/**

* 读取数据,写入MySQL

*

* 实现:

* 1. 读取文件

* 2. 转为table操作对象

* 3. 写SQL查询

* 4. 保存查询SQL的对象

**/



val ss = SparkUnit.getLocalSparkSession("OffLine")



// 读取两个文件

val path = "D:\\temp\\"

val jd_jobs = ss.read

.option("header", false)

.option("encoding","gbk")

.option("delimiter", ",")

.csv(path + "51_jobs_data.csv").toDF("job_name", "job_date", "minSale","maxSale","job_city","job_area","company_nature","company_size_min","company_size_max","company_Industry")

jd_jobs.show()

// SQL式编程需要转为table结构

jd_jobs.createTempView("jd_jobs")



// select

val jobs = ss.sql(

"""

| SELECT job_name, job_date, minSale, maxSale,job_city,job_area,

| company_nature,company_size_min,company_size_max,company_Industry

| from jd_jobs

|""".stripMargin)



// JDBC

val url = "jdbc:mysql://localhost:3306/bigdata?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC"

val tb = "jd_jobs"

val properties = new Properties()

properties.setProperty("user", "root")

properties.setProperty("password", "123456")

properties.setProperty("driverClass", "com.mysql.jdbc.Driver")



// save

jobs.write.mode("overwrite").jdbc(url, tb, properties)



// tips :除了查询SQL返回对象,然后保存对象

// 还可以直接create table as select ... 一步到位

}

}

四、导入MySQL

相关推荐
heimeiyingwang31 分钟前
【架构实战】分布式事务Saga模式:长事务的优雅解决方案
分布式·架构
XWalnut36 分钟前
Zookeeper入门
分布式·zookeeper
朴马丁1 小时前
预制菜的“数字厨房”:PLM如何支撑菜品标准化与供应链高效协同?
大数据·人工智能·食品行业·流程行业plm
水木流年追梦2 小时前
大模型入门-大模型优化方法12-YaRN 长文本外推技术
人工智能·分布式·算法·正则表达式·prompt
奋斗的老史3 小时前
Spring-Boot 集成 TDengine 完整实战
大数据·时序数据库·tdengine
郑洁文3 小时前
音乐数据分析研究与应用
大数据·数据挖掘·数据分析·音乐数据分析
成长之路5144 小时前
【实证分析】地市环境规制综合指数测算-原始数据+do代码(2011-2024年)
大数据
逸模4 小时前
AI+BIM 重构连锁公装新范式 逸模打造数字化营建核心底座
大数据·人工智能·笔记·其他·信息可视化·重构
Algorithm_Engineer_4 小时前
如何利用Pycharm进行分布式的Debug训练
ide·分布式·pycharm
睡不醒男孩0308235 小时前
第三篇:打破云厂商锁定:基于CLup构建私有化PolarDB分布式集群高可用方案
分布式·clup·中启乘数