PySpark库是一个通用的、内存中的、分布式处理引擎,可以让你有效地管理几个工作站的数据。 我们还将学习PySpark的fillna()方法,该方法用于用一个自定义的值来填充数据框中的空值,以及它的例子。
什么是PySpark?
PySpark是Spark支持的语言之一。Spark是一种大型数据处理技术,可以处理PB级的数据。PySpark是一个Apache Spark和Python的合作。Python是一种现代高级编程语言,而Apache Spark是一种开源的,专注于集群的计算任务,主要针对速度、易用性和流分析。因为Spark大多是用Scala构建的,与用Python或R编写Spark程序相比,用Scala或Java创建Spark应用程序可以获得更多的功能。 例如,PySpark目前不支持数据集。你可以开发Spark程序来处理数据,并使用PySpark在Spark平台上启动它们。AWS提供管理的EMR和Spark平台。
如果你要做数据科学,PySpark是比Scala更好的选择,因为有很多流行的数据科学库是用Python写的,如NumPy、TensorFlow和Scikit-learn。你可以使用PySpark来处理数据,并在AWS上建立一个EMR集群。PySpark可以从各种文件格式读取数据,包括csv、parquet、json以及数据库。对于较小的数据集,Pandas被利用,而对于较大的数据集,PySpark被采用。与PySpark相比,Pandas的结果更快。根据内存的可用性和数据大小,你可以在PySpark和Pandas之间切换,以提高性能。当需要处理的数据足够大的内存时,一定要使用Pandas而不是PySpark。Spark已经迅速成为业界首选的数据处理技术。然而,它并不是第一个。在Spark之前,处理引擎是MapReduce。
什么是PySpark Fillna()?
PySpark fillna()是一个PySpark方法,用于替换PySpark数据框架模型中单个或多个列中的空值。根据业务需求,这个值可能是任何东西。它可以是0或空字符串和任何常数字面。这个fillna()方法对数据分析很有用,因为它消除了可能导致数据分析困难的空值。
使用Fillna()的例子
from pyspark.sql import SparkSession
spark_session = SparkSession.builder \
.master('local[1]') \
.appName('Example') \
.getOrCreate()
df = spark_session.createDataFrame(
[
(1, 'Canada', 'Toronto', None),
(2, 'Japan', 'Tokyo', 8000000),
(3, 'India', 'Amritsar', None),
(4, 'Turkey', 'Ankara', 550000),
],
['id', 'country', 'city', 'population']
)
df.show()
输出
+---+---------+--------------+-----------+
| id| country| city | population|
+---+---------+--------------+-----------+
| 1| Canada| Toronto| null|
| 2| Japan| Tokyo| 8000000|
| 3| India| Amritsar| null|
| 4| Turkey| Ankara| 550000|
+---+---------+--------------+-----------+
我们现在可以只使用值参数来替换DataFrame中的所有空值。
df.na.fill(value=0).show()
df.na.fill(value=0,subset=["population"]).show()
df.fillna(value=0).show()
+---+---------+--------------+-----------+
| id| country| city | population|
+---+---------+--------------+-----------+
| 1| Canada| Toronto| 0|
| 2| Japan| Tokyo| 8000000|
| 3| India| Amritsar| 0|
| 4| Turkey| Ankara| 550000|
+---+---------+--------------+-----------+
上述操作将把整数列中的所有空值替换为0。
总结
我们在本节课中讨论了PySpark、PySpark fillna()方法以及它的例子。fillna()方法将DataFrame中的所有空值替换为我们的自定义值。