Python完整指南——使用PySpark打印数据
现在让我们来学习如何使用PySpark打印数据。数据是当今最基本的东西之一。它可以以加密或解密的格式提供。事实上,我们每天也倾向于创造大量的信息。无论是在我们的智能手机上点击一个按钮,还是在我们的电脑上浏览网页。但是,为什么我们对这个问题谈得这么多?
研究人员在前几年遇到的主要问题是**如何管理如此大量的信息?**技术是这个问题的答案。Apache Spark的出现,构建出了PySpark来解决这个问题。
如果你是PySpark的新手,这里有一个PySpark教程让你入门。
使用Pyspark的介绍
Apache Spark是一个数据管理引擎,帮助我们为巨大的软件开发项目发明与分析有关的解决方案。
它也是大数据工程师和数据科学家的一个选择工具。掌握Spark的知识是各种科技公司招聘的紧缺技能之一。
它有许多扩展和管理选项。其中一个是来自Python的Pyspark,是为Python开发者准备的。这是支持库的API之一,可以明确地安装在每台计算机上。所以,这可以轻松地管理实现。我们都知道,在Python中安装库是很容易的。
在我们使用PySpark打印数据之前
在我们开始学习使用PySpark打印数据的不同方法之前**,有一些前提条件是我们需要考虑的。**
对Python的核心理解
对Pyspark及其支持包的核心理解。
Python 3.6及以上版本
Java 1.8及以上版本(最必修的)。
一个IDE,如Jupyter Notebook或VS Code。
要检查这些,请进入命令提示符并输入命令。
python --version 复制代码
java -version复制代码
版本检查
你可以通过以下方式使用PySpark打印数据。
打印原始数据
格式化打印的数据
显示顶部20-30行
显示底部20行
在显示前对数据进行排序
本教程其余部分使用的资源和工具。
数据集。 titanic.csv
环境。 Anaconda
集成开发环境。 Jupyter笔记本
创建一个会话
在spark环境中,会话是我们活动的所有实例的记录保持者。为了创建它,我们使用spark库中的SQL 模块。
这个SparkSession类有一个构建器 属性,它有一个**appname()**函数。这个函数将应用程序的名称作为一个字符串形式的参数。
然后我们使用**getOrCreate()方法创建应用程序,该方法使用点'.'**操作符调用。使用这些代码,我们创建我们的应用程序为 "App"。
我们可以完全自由地给我们创建的应用程序起任何名字。 千万不要忘记创建一个会话,因为我们无法继续下去。
代码。
import pyspark from pyspark.sql import SparkSession session = SparkSession.builder.appName('App').getOrCreate() # creating an app复制代码
创建一个会话
使用PySpark打印数据的不同方法
现在你都准备好了,让我们进入真正的交易。现在我们将在这里学习使用PySpark打印数据的不同方法。
1.打印原始数据
在这个例子中,我们将与一个原始数据集一起工作。在 AI(人工智能域中,我们把数据的集合称为数据集。
它以各种形式出现,如excel、逗号分隔的值文件、文本文件或服务器文档模型。所以,要记下我们是用什么类型的文件格式来打印原始数据。
在这里,我们使用的是一个扩展名为**.csv的数据集。会话的读取** 属性有各种函数用于读取文件。
这些函数通常根据不同的文件类型而命名。因此,我们为我们的数据集使用csv()函数。我们把所有东西都存储在数据变量中。
代码
data = session.read.csv('Datasets/titanic.csv') data # calling the variable复制代码
默认情况下,Pyspark会以字符串的形式读取所有的数据。因此,我们调用我们的数据变量,然后它以字符串的形式返回每一列的数字。
要打印原始数据,请使用点运算符--'.',在数据变量中调用**show()**函数。
data.show()复制代码
读取数据集
2.格式化数据
Pyspark中的数据格式化意味着显示数据集中各列 的适当数据类型 。为了显示所有的标题,我们使用option() 函数。这个函数需要两个字符串形式的参数。
关键
值
对于key 参数,我们给出的值是header ,值是true。这样做的目的是,它将扫描出需要显示的页眉而不是上面的列号。
最重要的是要扫描每一列的数据类型。为此,我们需要激活先前用于读取数据集的csv()函数中的inferschema 参数。这是一个布尔 数据类型的参数,也就是说,我们需要将其设置为True 来激活它。我们用点运算符连接每个函数。
代码。
data = session.read.option('header', 'true').csv('Datasets/titanic.csv', inferSchema = True) data复制代码
data.show()复制代码
以正确的格式显示数据
输出
我们可以看到,标题与适当的数据类型是可见的。
3.显示前20-30行
要显示前20-30行,我们只需要一行代码就可以做到。**show()函数为我们做到了这一点。如果数据集太大,它将默认显示前20行。但是,我们可以让它显示尽可能多的行。只要把这个数字作为show()**函数的一个参数就可以了。
data.show() # to display top 20 rows复制代码
显示前20行
data.show(30) # to display top 30 rows复制代码
显示前30行
我们可以使用**head()**函数实现同样的功能。这个函数专门提供了对数据集最上面部分的行的访问。它以行数为参数,按行数显示。例如,要显示前10行
data.head(10)复制代码
但是,其结果是以数组或列表的形式出现。最令人失望的是,我们不能对有成千上万行的大型数据集使用head()函数。下面是这方面的证明。
使用头部方法来打印前10行
4.显示底部20-30行
这也是一个比较容易的任务。tail()函数可以帮助我们完成这个任务。用数据框变量调用它,然后给我们想要显示的行数作为参数。例如,为了显示最后的20行,我们将代码写成。
data.tail(20)复制代码
显示波顿20行
同样的,我们不能做任何适当的视图,因为我们的数据集太大,无法显示这些行。
5.在显示前对数据进行排序
排序是一个过程,在这个过程中,我们将事物按适当的顺序排列。这可以是升序 --从小到大或降序 --从大到小。这在按照顺序查看数据点时起着重要作用。数据框架中的列可以是各种类型。但是,两个主要类型是整数 和字符串。
对于整数的排序是根据大数和小数进行的。
对于字符串的排序是按照字母顺序进行的。
Pyspark中的sort()函数仅用于此目的。它可以接受单个或多个列作为它的参数。让我们对我们的数据集进行尝试。我们将从数据集中对PassengerID列进行排序。为此,我们有两个函数。
sort()
orderBy()
以升序排序
data = data.sort('PassengerId') data.show(5)复制代码
对单一列进行排序 1
PassengerID 列已经被排序。该代码将所有的元素按升序排列。这里我们只对单列进行排序。要对多列进行排序,我们可以在sort()函数中逐一传递,用逗号将每一列分开。
data = data.sort('Name', 'Fare') data.show(5)复制代码
对多列进行排序
以降序排序
这是专门针对**orderBy()**函数的。这个函数提供了一个特殊的选项来对我们的数据进行降序排序。
在这种情况下,所有的代码都是一样的,只是我们在插入列并使用点运算符与它们连接后,在orderBy()函数中调用一个**desc()**函数。
**desc()**将那些特定列的所有元素排列或排序在 降序.
首先,让我们看一下数据集中的所有列。
代码。
data.columns复制代码
列记录
在下面的代码中,我们将对Name 和Fare 列进行排序。名字是一个字符串数据类型,所以它将按照字母顺序进行排序。而Fare是一个数字,所以它将以大-小的模式进行排序。
代码
data = data.orderBy(data.Name.desc(), data.Fare.desc()) data.show(5)复制代码
按降序排序
总结
所以,这就是关于我们如何使用Pyspark打印数据的全部内容。每段代码都很短,很容易理解。这足以让我们了解火花函数的代码知识。这个环境对于大数据 和其他工业和技术领域来说是非常强大的。
作者:方石剑
链接:https://juejin.cn/post/7025523558432374792