1. 程式人生 > 其它 >美國新冠肺炎疫情資料分析US 2019COVID

美國新冠肺炎疫情資料分析US 2019COVID

US_2019COVID

介紹

2020年美國新冠肺炎疫情資料分析–截止2020年9月9日


  • 資料處理
  • 使用Spark對資料進行分析
  • 資料視覺化

一、資料處理

1. 資料集分析

![data](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy9kYXRhLnBuZw?x-oss-
process=image/format,png)
資料包含以下欄位,具體含義:
date 日期; county 區縣; state 州; cases 截止該日期確診人數; deaths 截止該日期死亡人數
將csv檔案轉為txt檔案,方便spark讀取生成RDD和DataFrame。
轉換程式碼見 csv_txt.py

2. 上傳檔案到HDFS檔案系統

    hdfs dfs -mkdir /tmp
    hdfs dfs -put us-counties.txt /tmp
    

二、使用Spark對資料進行分析

這裡使用spark SQL對資料進行分析,因資料集是txt檔案,需要從RDD轉換得到DataFrame。
從RDD轉換得到DataFrame有兩種方法,因不知道資料結構,使用第二種程式設計方式定義RDD模式。

    #生成表頭
    fields=[StructField("date",DateType(),False),
            StructField("county",StringType(),False),
            StructField("state",StringType(),False),
            StructField("cases",IntegerType(),False),
            StructField("deaths",IntegerType(),False)]
    schema=StructType(fields)
    
    #生成表中記錄
    rdd0=spark.sparkContext.textFile("/tmp/us-counties.txt")
    rdd1=rdd0.map(lambda x:x.split("\t")).map(lambda p:Row(toDate(p[0]),p[1],p[2],int(p[3]),int(p[4])))
    #拼接
    schemaUsCovid=spark.createDataFrame(rdd1,schema)
    #註冊臨時表
    schemaUsCovid.createOrReplaceTempView("usInfo")

其中主要統計了一下8個指標,分別是:

  1. 計算每日累計確診病例數和死亡數
  2. 計算每日較昨日新增確診病例數和死亡數
  3. 統計截止9月9日 美國各州累計確診人數和死亡人數 病死率=死亡率/確診率
  4. 統計截止9月9日 美國確診最多的10個州
  5. 統計截止9月9日 美國國死亡最多的10個州
  6. 統計截止9月9日 美國確診最少的10個州
  7. 統計截止9月9日 美國死亡最少的10個州
  8. 統計截止9月9日全美和各州病死率

將結果儲存在本地檔案系統中。

    hdfs dfs -get /tmp/us/result1.json ./result/result1

剩下result檔案類似。

完整程式碼見 dataAnalyst.py

三、資料視覺化

使用python第三方庫pyecharts作為視覺化工具
具體程式碼見 show.py
具體截圖如下:
1.計算每日累計確診病例數和死亡數

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy8xLnBuZw?x-oss-
process=image/format,png)

2.計算每日較昨日新增確診病例數

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy8yLjEucG5n?x-oss-
process=image/format,png)

死亡數

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy8yLjIucG5n?x-oss-
process=image/format,png)

3.統計截止9月9日 美國各州累計確診人數和死亡人數

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy8zLjEucG5n?x-oss-
process=image/format,png)

4.統計截止9月9日 美國確診最多的10個州

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy80LnBuZw?x-oss-
process=image/format,png)

5.統計截止9月9日 美國國死亡最多的10個州

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy81LnBuZw?x-oss-
process=image/format,png)

6.統計截止9月9日 美國確診最少的10個州

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy82LnBuZw?x-oss-
process=image/format,png)

7.統計截止9月9日 美國死亡最少的10個州

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy83LnBuZw?x-oss-
process=image/format,png)

8.統計截止9月9日全美和各州病死率

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20veXh1YW4tY3MvdXNfMjAxOS1jb3ZpZC9yYXcvbWFzdGVyL3BpYy84LnBuZw?x-oss-
process=image/format,png)

程式碼地址:https://gitee.com/yxuan-cs/us_2019-covid

參考:http://dblab.xmu.edu.cn/blog/2636-2/