Spark SQL案例之疫情分析

前言

2020年春节,武汉爆发新型冠状病毒,形势严峻
请使用Spark SQL分析疫情数据,完成以下任务,为打赢疫情防控狙击战做出贡献(以下数据等为案例示例所用,纯属虚构)

疫情防控有关数据表

1). 人员信息civic_info.csv
在这里插入图片描述
2). 票务信息ticket_info.csv
在这里插入图片描述

任务需求分析

  1. 湖北籍人员信息

  2. 武汉疫区人员信息

  3. 需要对员工进行隔离观察14天的公司

  4. 有感染风险的车厢

  5. 需要隔离观察的人员信息

    请结合当前的信息数据,使用Spark SQL分析疫情数据,完成以上任务

import org.apache.spark.sql.SparkSession
import spark.implicits._
//创建SparkSession对象
val spark = SparkSession
	.builder()
	.appName("武汉加油")
	.config("spark.some.config.option", "some-value")
	.getOrCreate()
//导入相关数据表格,源文件在spark解压包的bin目录下则路径直接写文件名,本地文件写文件全路径
val TicketDF = spark.read
	.format("csv")
	.option("header", "true")
	.load("ticket_info.csv")
val CivicDF = spark.read
	.format("csv")
	.option("header", "true")
	.load("civic_info.csv")
//为了sql查询,创建临时视图
TicketDF.createOrReplaceTempView("ticket_info")
CivicDF.createOrReplaceTempView("civic_info")
  1. 湖北籍人员信息
val sqlDF1 = spark.sql("SELECT * FROM civic_info where province='湖北'")
sqlDF1.show()
  1. 武汉疫区人员信息
val sqlDF2 = spark.sql("SELECT * FROM civic_info where city='武汉'")
sqlDF2.show()
  1. 需要对员工进行隔离观察14天的公司
val sqlDF3 = spark.sql("SELECT working_company FROM civic_info where city='武汉'")
sqlDF3.show()
  1. 有感染风险的车厢
val sqlTicketDF1 = spark.sql("SELECT carriage_no FROM ticket_info where departure='武汉'")
sqlTicketDF1.show()
  1. 需要隔离观察的人员信息
val sqlTicketDF2 = spark.sql("SELECT  * FROM ticket_info where carriage_no in (select carriage_no from ticket where departure = '武汉')")
sqlTicketDF2.show()

结束语

坚定信心、同舟共济、科学防治、精准施策!
坚决打赢疫情防控阻击战!
武汉加油!中国加油!

发布了6 篇原创文章 · 获赞 1 · 访问量 104

猜你喜欢

转载自blog.csdn.net/weixin_45568872/article/details/104264732