前言
2020年春节,武汉爆发新型冠状病毒,形势严峻
请使用Spark SQL分析疫情数据,完成以下任务,为打赢疫情防控狙击战做出贡献(以下数据等为案例示例所用,纯属虚构)
疫情防控有关数据表
1). 人员信息civic_info.csv
2). 票务信息ticket_info.csv
任务需求分析
-
湖北籍人员信息
-
武汉疫区人员信息
-
需要对员工进行隔离观察14天的公司
-
有感染风险的车厢
-
需要隔离观察的人员信息
请结合当前的信息数据,使用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")
- 湖北籍人员信息
val sqlDF1 = spark.sql("SELECT * FROM civic_info where province='湖北'")
sqlDF1.show()
- 武汉疫区人员信息
val sqlDF2 = spark.sql("SELECT * FROM civic_info where city='武汉'")
sqlDF2.show()
- 需要对员工进行隔离观察14天的公司
val sqlDF3 = spark.sql("SELECT working_company FROM civic_info where city='武汉'")
sqlDF3.show()
- 有感染风险的车厢
val sqlTicketDF1 = spark.sql("SELECT carriage_no FROM ticket_info where departure='武汉'")
sqlTicketDF1.show()
- 需要隔离观察的人员信息
val sqlTicketDF2 = spark.sql("SELECT * FROM ticket_info where carriage_no in (select carriage_no from ticket where departure = '武汉')")
sqlTicketDF2.show()
结束语
坚定信心、同舟共济、科学防治、精准施策!
坚决打赢疫情防控阻击战!
武汉加油!中国加油!
来源:CSDN
作者:不将就的cris
链接:https://blog.csdn.net/weixin_45568872/article/details/104264732