手把手教你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万。
- 建立Context 读入数据:
- 我们使用下面的函数建立Spark context。
- Spark Local模式单机模式,并不是集群模式
- 调用函数打开文件,
- 这个文件是有头的,就是第一行。
- 分析数据:
- 我们看这个表里面有省,国家,以及人数的信息,
- 我们需要的一个是国家(包括所有省),另外一个是人数
- 输出结果:
- 然后再把它做一个排序。
- 结果如下
- 我们看到排序之后,列名不是我们想要的,再重新整理一下
- 查看下目前数据的格式:我们可以看到国家和康复数字的排名了。
- 下面我们还需要把它写到文件里,后续画图用。然后写的文件的模式是覆盖,并且文件带头。
- 这里面有个分区合并的动作(coalesce),为什么这里头加一个这个重分区呢?因为Spark是分布式计算,如果不加这个重分区的话,它会按照默认的分区数来生成多个Excel文件。
- 最终结果:
- 查看一下生成文件Excel表:第1列是国家,第2列是人数的统计之和,然后数字从大到小,所有康复数量大于1万的国家统计出来目前是50个。
- 最后以图形的形式展示就是文章开头的图表了!
这把刀好用么?
给你
完整视频分享在这里:https://www.ixigua.com/i6842380180153958925/
里有你
请先 后发表评论~