Apache Spark 练习三:使用Spark SQL分析新冠肺炎疫情数据 |
您所在的位置:网站首页 › 美国每日确诊人数是多少个 › Apache Spark 练习三:使用Spark SQL分析新冠肺炎疫情数据 |
Apache Spark 练习三:使用Spark SQL分析新冠肺炎疫情数据
原创
liulizhi1996 2022-12-24 04:30:43 ©著作权 文章标签 spark 大数据 分布式 sql 数据 文章分类 运维 ©著作权归作者所有:来自51CTO博客作者liulizhi1996的原创作品,请联系作者获取转载授权,否则将追究法律责任本文依然延续使用《Apache Spark 练习一:使用RDD分析新冠肺炎疫情数据》中的数据进行分析。 0. 数据预处理import org.apache.spark.sql.SparkSessionval spark = SparkSession .builder() .appName("Coronavirus") .getOrCreate()import spark.implicits._ // 读取源数据val df = spark.read .option("header", value = true) .csv("hdfs:///SparkLearning/us-counties.csv") .withColumns( Map( "cases" -> $"cases".cast("int"), "deaths" -> $"deaths".cast("int") ) )// 注册为临时视图df.createOrReplaceTempView("us_covid_19") 1. 统计美国截止每日的累计确诊人数和累计死亡人数val res = spark.sql(""" |SELECT date, SUM(cases) AS total_cases, SUM(deaths) AS total_deaths |FROM us_covid_19 |GROUP BY date |ORDER BY date |""".stripMargin)2. 统计截至2020.5.19,美国累计确诊人数最多的十个州val res = spark.sql(""" |SELECT state, SUM(cases) AS total_cases |FROM us_covid_19 |WHERE date = "2020-05-19" |GROUP BY state |ORDER BY total_cases DESC |LIMIT 10 |""".stripMargin)3. 统计截止2020.5.19,全美各州的病死率val res = spark.sql(""" |SELECT state, ROUND(SUM(deaths) / SUM(cases), 4) AS death_rate |FROM us_covid_19 |WHERE date = "2020-05-19" |GROUP BY state |ORDER BY state |""".stripMargin)4. 统计美国每日的新增确诊人数val res = spark.sql(""" |WITH daily_cases AS ( | SELECT date, SUM(cases) AS total_cases | FROM us_covid_19 | GROUP BY date |) |SELECT t1.date, t1.total_cases - t2.total_cases AS new_cases |FROM daily_cases AS t1 JOIN daily_cases AS t2 ON DATEDIFF(t1.date, t2.date) = 1 |ORDER BY t1.date |""".stripMargin) 赞 收藏 评论 分享 举报上一篇:Apache Spark 练习二:使用Dataframe分析新冠肺炎疫情数据 下一篇:Apache Spark 练习四:使用Spark分析挖掘零售交易数据 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |