📅  最后修改于: 2023-12-03 15:00:45.320000             🧑  作者: Mango
在Spark数据框中,fillna函数是用来填充null或NaN值的。这个函数会用给定的值来替换数据框中的所有null或NaN值。在本篇文章中,我们将介绍如何使用fillna函数来填充null或NaN值。
以下是一个简单的示例,在数据框的所有null或NaN值中填充“unknown”:
from pyspark.sql.functions import when, col
df.fillna('unknown')
这里我们使用when和col函数来填充数据框中的null或NaN值。当列中的值为null或NaN时,将它们替换为“unknown”。
我们可以使用fillna函数来填充指定列的null或NaN值。
df.fillna({'col1': 'unknown', 'col2': 0})
这里我们使用一个字典来指定要填充的列及其相应的值。上面的代码将col1中所有的null或NaN值替换为“unknown”,将col2中所有的null或NaN值替换为0。
我们可以使用fillna函数来填充前n行的null或NaN值。
df.fillna('unknown', subset=['col1', 'col2'], limit=10)
这里,我们使用了subset和limit参数来指定要填充的列和填充的行数。上面的代码将前10行的col1和col2中的null或NaN值替换为“unknown”。
我们可以使用fillna函数来自定义填充逻辑。
def custom_fillna(col_name):
return when(col(col_name).isNull(), 'unknown')\
.otherwise(col(col_name))
df.select([custom_fillna(c).alias(c) for c in df.columns])
这里,我们定义了一个名为custom_fillna的函数,该函数将null或NaN值替换为“unknown”。这个函数用when函数来实现替换逻辑,并使用otherwise函数来保留原始值。最后,我们将custom_fillna应用于数据框中的所有列。
以上是fillna函数在Spark数据框中的一些常见用法。有了这些技巧,您可以方便地处理数据框中的null或NaN值,从而更好地分析和理解数据。