• 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

  • 相关阅读:
    [机缘参悟-33]:眼见不一定为实,大多数时候“眼见为虚”
    你以为的直线,在多维空间里是复杂的曲线
    DefaultListableBeanFactory
    前后端协议后端统一返回格式Result
    如何使用postman调用若依系统接口(报错401,认证失败,无法访问系统资源)
    What Is SSH Protocol ?
    leetcode-887-鸡蛋掉落(包含最大值最小化,最小值最大化的二分优化+滚动数组的原理)
    SpringBoot+Vue项目疫情防控平台
    Python的logging模块Demo
    7-25 念数字
  • 原文地址:https://blog.csdn.net/pblh123/article/details/133854208