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

相关推荐
渣渣盟2 分钟前
Flink事件时间与窗口操作实战指南
大数据·flink·scala
Yyyyy123jsjs14 分钟前
如何选用外汇接口实现稳定数据抓取?
大数据·python·金融
孟意昶1 小时前
Doris专题31-SQL手册-基础元素
大数据·数据库·数据仓库·分布式·sql·知识图谱·doris
飞飞传输1 小时前
国产化FTP替代方案哪个好?选对平台让传输更安全高效
大数据·运维·安全
2501_933329552 小时前
企业舆情处置实战:Infoseek数字公关AI中台技术架构与功能解析
大数据·人工智能·架构·数据库开发
编程迪2 小时前
基于Java和Vue开发的剪辑接单小程序APP软件系统源码
大数据
551只玄猫2 小时前
【模块1 建立认知2】金融数据的类型与获取方式(附实战)
大数据·金融·数据科学·数据处理
亿信华辰软件3 小时前
从单业态到多业态:主数据管理的策略、架构与实践
大数据
ctrigger3 小时前
中国水利水电工程局有限公司
大数据
2603_954708313 小时前
交直流混合微电网架构:拓扑优化与功率交互设计
人工智能·分布式·物联网·架构·系统架构·能源