手把手教你Python大数据分析:使用 PySpark 分析 Excel 文件

Apache Spark是一个用于大规模数据分析处理的引擎。它支持Java、Scala、Python和R语言。

在数据分析人工智能领域 Python的使用已经远超其它语言。

其中Spark还支持一组丰富的高级工具,包括用于SQL和结构化数据处理的Spark SQL、用于机器学习的MLlib、用于图形处理的GraphX以及用于增量计算和流处理的Spark Streaming。

本文使用PySpark的SQL module 来实现对CSV文件数据分析及处理。

虽然Spark擅长的是大数据分析,但是通过这个例子我们可以看一下Spark数据分析是怎么做的,杀鸡得用宰牛刀了️

要解决的问题:

新冠疫情到目前为止世界各国康复人数的Top统计,如下图:

结果展示

输入文件:

我们现在有一份联合国发布的关于新冠康复人数的统计信息,这里面包含国家,省份,还有每日更新的总康复人数

最后一列"2020年6月23号"就是我们需要的信息。

输入文件

那么我们想统计什么呢?

我们这次要统计的是,基于国家的康复的人数从大到小的排列。并且总数大于1万。

  1. 建立Context 读入数据:
  • 我们使用下面的函数建立Spark context。
  • Spark Local模式单机模式,并不是集群模式

建立 spark context

  1. 调用函数打开文件,
  • 这个文件是有头的,就是第一行。

打开文件

  1. 分析数据:
  • 我们看这个表里面有省,国家,以及人数的信息,
  • 我们需要的一个是国家(包括所有省),另外一个是人数

按国家名统计人数

  • 输出结果:

国家级人数总和

  • 然后再把它做一个排序。

按人数从大到小排序

  • 结果如下

排序后结果

  • 我们看到排序之后,列名不是我们想要的,再重新整理一下

总数大于10000并重命名列

  • 查看下目前数据的格式:我们可以看到国家和康复数字的排名了。

最后数据输出结果

  • 下面我们还需要把它写到文件里,后续画图用。然后写的文件的模式是覆盖,并且文件带头。

写入CSV文件

  • 这里面有个分区合并的动作(coalesce),为什么这里头加一个这个重分区呢?因为Spark是分布式计算,如果不加这个重分区的话,它会按照默认的分区数来生成多个Excel文件。
  1. 最终结果:
  • 查看一下生成文件Excel表:第1列是国家,第2列是人数的统计之和,然后数字从大到小,所有康复数量大于1万的国家统计出来目前是50个。

最终结果数据

  • 最后以图形的形式展示就是文章开头的图表了!

这把刀好用么?

给你

@头条精选 @头条科技 #科技新星创作营# #我要上条头#

完整视频分享在这里:https://www.ixigua.com/i6842380180153958925/

里有你

谢谢关注

举报
评论 0