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


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

    二、在MySQL中创建空表

    1. SET FOREIGN_KEY_CHECKS=0;
    2. -- ----------------------------
    3. -- Table structure for jd_jobs
    4. -- ----------------------------
    5. DROP TABLE IF EXISTS `jd_jobs`;
    6. CREATE TABLE `jd_jobs` (
    7. `job_name` text,
    8. `job_date` text,
    9. `minSale` text,
    10. `maxSale` text,
    11. `job_city` text,
    12. `job_area` text,
    13. `company_nature` text,
    14. `company_size_min` text,
    15. `company_size_max` text,
    16. `company_Industry` text
    17. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

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

    以下是完整代码:

    1. import java.util.Properties
    2. import com.niit.util.{LoggerLevelSparkUnit}
    3. object SparkSQL_MySQL extends LoggerLevel {
    4. def main(args: Array[String]): Unit = {
    5. /**
    6. * 读取数据,写入MySQL
    7. *
    8. * 实现:
    9. * 1. 读取文件
    10. * 2. 转为table操作对象
    11. * 3. 写SQL查询
    12. * 4. 保存查询SQL的对象
    13. **/
    14. val ss = SparkUnit.getLocalSparkSession("OffLine")
    15. // 读取两个文件
    16. val path = "D:\\temp\\"
    17. val jd_jobs = ss.read
    18. .option("header", false)
    19. .option("encoding","gbk")
    20. .option("delimiter"",")
    21. .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")
    22. jd_jobs.show()
    23. // SQL式编程需要转为table结构
    24. jd_jobs.createTempView("jd_jobs")
    25. // select
    26. val jobs = ss.sql(
    27. """
    28. | SELECT job_name, job_date, minSale, maxSale,job_city,job_area,
    29. | company_nature,company_size_min,company_size_max,company_Industry
    30. | from jd_jobs
    31. |""".stripMargin)
    32. // JDBC
    33. val url = "jdbc:mysql://localhost:3306/bigdata?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC"
    34. val tb = "jd_jobs"
    35. val properties = new Properties()
    36. properties.setProperty("user""root")
    37. properties.setProperty("password""123456")
    38. properties.setProperty("driverClass""com.mysql.jdbc.Driver")
    39. // save
    40. jobs.write.mode("overwrite").jdbc(url, tb, properties)
    41. // tips :除了查询SQL返回对象,然后保存对象
    42. // 还可以直接create table as select ... 一步到位
    43. }
    44. }

    四、导入MySQL

  • 相关阅读:
    区块链——Hyperledger Fabric2.2单点搭建网络
    (附源码)mysql+ssm医院挂号系统 毕业设计 250858
    克鲁斯卡尔算法
    基于Python3搭建qt开发环境
    dig 简明教程
    小米6/6X/米8/米9手机刷入鸿蒙HarmonyOS.4.0系统-刷机包下载-遥遥领先
    ssm+vue+elementUI基于微信小程序的电动电动汽车车智能充电桩服务平台-计算机毕业设计
    【JVM笔记】对象分配过程:TLAB
    九、数组的扩展(扩展运算符)
    Qt中实现页面切换的两种方式
  • 原文地址:https://blog.csdn.net/pblh123/article/details/133854208