Python|PySpark初级教程——大数据分析(附代码实现 )

简介我们正在以前所未有的速度生成数据 。 老实说 , 我跟不上世界各地里产生的巨大数据量!我敢肯定你已经了解过当今时代数据的产量 。 McKinsey, Gartner, IBM,等公司都给出了他们公司的数据 。
这里有一些令人难以置信的数字供你参考 。 有超过5亿条推文、900亿封电子邮件、6500万条WhatsApp消息 , 以上这些都是在一天之内发送的!Facebook在24小时内能生成4PB的数据 。 这是难以置信的!
当然 , 这也带来了挑战 。 一个数据科学团队如何捕获这么多的数据?你如何处理它并从中建立机器学习模型?如果你是一名数据科学家或数据工程师 , 这些都是令人兴奋的问题 。
Spark正能应对这些问题 。 Spark是用Scala编写的 , 它提供了Scala、JAVA、Python和R的接口. PySpark一起工作的API 。 PySpark是用Python编写的Python API用来支持Spark的 。
Python|PySpark初级教程——大数据分析(附代码实现 )文章插图
处理大数据的一种传统方式是使用像Hadoop这样的分布式框架 , 但这些框架需要在硬盘上执行大量的读写操作 。 事实上时间和速度都非常昂贵 。 计算能力同样是一个重要的障碍 。
PySpark以一种高效且易于理解的方式处理这一问题 。 因此 , 在本文中 , 我们将开始学习有关它的所有内容 。 我们将了解什么是Spark , 如何在你的机器上安装它 , 然后我们将深入研究不同的Spark组件 。 本文附有代码 。
目录

  1. Spark是什么?
  2. 在你的计算机上安装Apache Spark
  3. 什么是Spark应用程序?
  4. 什么是Spark会话?
  5. Spark的分区
  6. 转换
  7. 惰性计算
  8. Spark中的数据类型
1.Spark是什么?Apache Spark是一个开源的分布式集群计算框架 , 用于快速处理、查询和分析大数据 。
它是当今企业中最有效的数据处理框架 。 使用Spark的成本很高 , 因为它需要大量的内存进行计算 , 但它仍然是数据科学家和大数据工程师的最爱 。 在本文中 , 你将看到为什么会出现这种情况 。
Python|PySpark初级教程——大数据分析(附代码实现 )文章插图
通常依赖于Map-Reduce的框架的组织现在正在转向Apache Spark框架 。 Spark执行内存计算 , 比Hadoop等Map Reduce框架快100倍 。 Spark在数据科学家中很受欢迎 , 因为它将数据分布和缓存放入了内存中 , 并且帮助他们优化大数据上的机器学习算法 。
我建议查看Spark的官方页面 , 了解更多细节 。 它有大量的文档 , 是Spark很好参考教程:
2.安装Apache Spark2.1. 下载Apache Spark
安装Spark的一个简单方法是通过pip 。 但是 , 根据Spark的官方文档 , 这不是推荐的方法 , 因为Spark的Python包并不打算取代所有其他情况 。
在实现基本功能时 , 你很可能会遇到很多错误 。 它只适用于与现有集群(独立的Spark、YARN或Mesos)进行交互 。
因此 , 第一步是从这里下载Apache Spark的最新版本 。 解压并移动压缩文件:
tar xzvf spark-2.4.4-bin-hadoop2.7.tgz mv spark-2.4.4-bin-hadoop2.7 sparksudo mv spark/ /usr/lib/
Python|PySpark初级教程——大数据分析(附代码实现 )文章插图
2.2. 安装JAVA
确保在系统中安装了JAVA 。 我强烈推荐JAVA 8 , 因为众所周知 , Spark2在JAVA 9和其他方面存在问题:
sudo apt install default-jresudo apt install openjdk-8-jdk2.3. 安装Scala构建工具(SBT)
当你处理一个包含很少源代码文件的小型项目时 , 手动编译它们会更容易 。 但是 , 如果你正在处理一个包含数百个源代码文件的大型项目呢?在这种情况下 , 你需要使用构建工具 。
SBT是Scala构建工具的缩写 , 它管理你的Spark项目以及你在代码中使用的库的依赖关系 。
请记住 , 如果你使用的是PySpark , 就不需要安装它 。 但是如果你使用JAVA或Scala构建Spark应用程序 , 那么你需要在你的机器上安装SBT 。 运行以下命令安装SBT:
echo "deb/" | sudo tee -a /etc/apt/sources.list.d/sbt.listcurl -sL ";search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key addsudo apt-get updatesudo apt-get install sbt2.4. 配置SPARK
接下来 , 打开Spark的配置目录 , 复制默认的Spark环境模板 。 它已经以spark-env.sh.template的形式出现了 。 使用编辑器打开:
cd /usr/lib/spark/conf/ cp spark-env.sh.template spark-env.sh sudo gedit spark-env.sh现在 , 在文件spark-env.sh中 。 添加JAVA_HOME , 并将内存限制SPARKWORKERMEMORY进行赋值 。 这里 , 我把它分配为4GB:
## 添加变量JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64SPARK_WORKER_MEMORY=4g2.5. 设置Spark环境变量
使用下面的命令打开并编辑bashrc文件 。 这个bashrc文件是一个脚本 , 每当你开始一个新的终端会话就会执行: