在Python中使用Pyspark进行列的工作

202 阅读6分钟

在这篇文章中,我们将进一步了解PySpark。数据是推动信息技术和数字领域各个方面的核心来源之一。因此,为了正确使用它,我们需要了解几个基本点。现在有大量的数据。有一些软件工具包可用于管理这些大数据。其中一个就是Pyspark。

PySpark是Apache Spark的一个Python库和扩展。

使用PySpark处理数据列

这篇文章是为那些对Apache Spark和Python编程有所了解的人准备的。了解Python和数据分析的知识 Pyspark 的知识是理解这个主题的必要条件。

如果你都准备好了,让我们开始吧。

1.安装Pyspark

本节讨论了Pyspark的安装。只要进入命令提示符,并确保你已经将Python添加到PATH 中的 环境变量.接下来,键入以下 pip命令

pip install pyspark

通过命令提示符安装Pyspark

现在我们已经成功地在系统中安装了该框架,让我们进入正题。

2.设置环境

有一些先决条件,以确保我们有一个顺利的工作流程。以下是它们。

使用的工具和资源

  1. 环境。 Anaconda

  2. Python版本。 3.6及以上版本

  3. IDEJupyter Notebooks

  4. 数据集。 salary.csv

  5. 创建一个会话

  6. 读取数据集

  7. 显示数据集

3.在Pyspark中创建一个会话

Pyspark中的会话是我们进行大数据分析时最重要的方面之一。会话为我们创建了一个应用程序,这样它就保存了我们活动的每一条记录和每个检查点。使用以下代码来创建一个会话。

代码:

import pyspark
import warnings
warnings.filterwarnings('ignore')

from pyspark.sql import SparkSession

SQL模块的SparkSession类帮助我们创建一个会话。我们创建一个会话变量作为该类的一个实例。然后,构建者方法的属性appname()给出了应用程序的名称。然后getOrCreate() 方法创建一个交互式的应用程序。现在我们有了一个强大的基础,让我们进一步读取一个数据集。

4.读取数据集

当我们读取一个数据集时,机器会以SQL表的形式读取它。这个表中的每一列和单元格都默认为字符串。我们将从数据集文件夹中读取工资.csv。这是该数据集所在的路径。如果该文件存在于任何文件夹中,那么给出文件夹的路径是最好的选择。

以下是相关的代码:

data = session.read.csv('salary.csv')
data

首先,我们创建一个变量--"data",用来保存我们的数据集。会话的read函数是用来读取数据集的。该函数有一些子函数来读取各种扩展的文件。我们可以通过Pyspark读取以下类型的文件。

  1. csv
  2. 格式
  3. jdbc
  4. json
  5. orc
  6. 镶边
  7. 模式
  8. 文本

5.显示数据集

当我们读取数据集时,它只在系统中。对于查看它,有一个方法--show() 可以让我们查看它。如果数据集太大,那么该方法只显示前20行,但如果数据集很小,如10行或15行,则会显示整个表。

data.show()

数据集的视图

使用PySpark进行列转换

在上图中,该表以字符串的形式读取了表中的每个元素。然后,它还根据列的数量来命名。因此,如果我们有四列,那么它将显示从0到3的列号。 我们需要用适当的列标题来显示该表。这将是我们在这篇文章中讨论的核心话题。所以,让我们来了解一下它的步伐。

对于一个基本的操作,我们可以对一个数据集进行以下的转换:

  • 创建一个新的列
  • 选择一个特定的列
  • 选择多个列
  • 添加列
  • 删除列
  • 重命名列

我们不需要明确地使用外部库来做这件事,因为 派斯帕克 具有做同样事情的功能。要做到这一点,read 方法的option() 属性使我们可以查看头文件。以下是这方面的代码。

data = session.read.option('header', 'true').csv('Datasets/salary.csv', inferSchema = True)
data

option()属性使我们以适当的格式查看数据集。inferschema 参数被设置为True,使标题可见。此外,它还读取了具有相应数据类型的列。

用适当的列设置显示数据集

让我们把我们的研究转向列上的主要技术。

1.选择一个列

在Pyspark中,选择数据集中的某一列是非常容易的。**select()**函数需要一个参数作为一个列。它返回输出中的单列。

此外,为了记录所有可用的列,我们采取 属性。这将以列表的形式返回它们。在这个例子中,我们将从数据集中选择**"工作 "**列。

代码:

data.columns
data.select('Name').show()

输出:

选择一个特定的列

2.选择多列

我们使用相同的select()函数来选择多列。这个函数可以以列的形式接受多个参数。我们正在从数据集中选择"公司 " 和**"工作 "** 列。

代码:

data.select('company', 'job').show()

输出:

选择多列

3.添加列

添加列只是使用一行代码。Pyspark 提供了withColumn()lit() 函数。

  • withColumn() 函数。这个函数需要两个参数
    1. 要给出的列名。
    2. 需要参考的数据框架中现有的列。
  • lit() 函数与 withColumn() 函数集成,以增加一个新的列。它需要两个参数:
    1. 列名
    2. 为每一行提供的常数。

我们将使用withColumn()函数在我们的数据框架中添加一个新列"Tax cutting"。让我们说,剪税是所有员工共同的,所以它是一个常量值。

代码:

from pyspark.sql.functions import lit
# adding columns in dataframe
data = data.withColumn('Tax Cutting', lit(0.1))

输出:

在数据集中添加一个新的列

4.删除列

删除一个列就是永久地删除该列的所有内容。Pyspark为此提供了灵活的功能。像Pandas一样,我们有drop()函数。它把要删除的列作为一个参数。我们将尝试从数据集中删除学位 列。请确保你提到了适当的名称,否则会出现错误。

代码:

data = data.drop("degree")
data.show()

输出:

丢弃学位列

5.重命名一列

重命名一个列是改变该列的主标题标题 。为此我们使用**withColumnRenamed()**函数。这个函数需要两个参数。

  1. 现有的列名
  2. 给予该列的新名称。

为了实际理解,我们将把job 列的名字重命名为Designation

data = data.withColumnRenamed('job', 'Designation')

在上面的代码中, 工作 是数据框中现有的列名,而 名称 是我们将赋予该列的新名称。 重命名该列

总结

文章到此结束。我们看到了所有关于 Pyspark的列转换.各种修改,如创建一个新的列,删除它,重命名它,以及对它做一些修改。这就是开始使用这个库的基本历程。祝你在今后的学习中一切顺利。