Spark 教程

Spark SQL

Spark 笔记

Spark MLlib

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/spark-filter-row-with-null-value-in-dataframe-column.html

spark dataframe 过滤指定列为 null 的行数据

Spark DataFrame 原理及操作详解 Spark DataFrame 原理及操作详解


在 spark 中,过滤 dataframe 对象数据的某个列为 null 值(即空值)的行数据可以使用 filter 函数或 where 函数(where 底层本质上还是调用 filter)。

解决方案

dataframe 对象 filter 函数或 where 函数的参数里写类似 sql 的条件表达式,python 代码示例如下:

from pyspark.sql import SparkSession

spark_session = SparkSession.builder.appName('knowledgedict-dataframe').getOrCreate()

# 通过 python 的 None 构造 id 字段为 null 的数据
df = spark_session.createDataFrame(
    schema=['id', 'impression', 'click', 'ctr'],
    data=[(1, 100, 5, 0.05), (None, 10, 3, 0.3), (3, 50, 5, 0.1)]
)
print(df)
df.show()
df = df.filter('id is not null')
df.show()

打印信息如下:

DataFrame[id: bigint, impression: bigint, click: bigint, ctr: double]
+----+----------+-----+----+
|  id|impression|click| ctr|
+----+----------+-----+----+
|   1|       100|    5|0.05|
|null|        10|    3| 0.3|
|   3|        50|    5| 0.1|
+----+----------+-----+----+

+---+----------+-----+----+
| id|impression|click| ctr|
+---+----------+-----+----+
|  1|       100|    5|0.05|
|  3|        50|    5| 0.1|
+---+----------+-----+----+

 

spark dataframe 对象 filter 函数可以通过指定的条件过滤数据,和 where 函数作用和用法相同,它可以接收字符串类型 ...
在实际开发中,常常遇到多个 dataframe 关联(即 join)操作后,有些字段或列的值为 null 的情况,我们需要对列值为空进行填充 ...
pyspark 的 dataframe 对象数据获取行数和列数和 pandas 的 dataframe 的操作不同,它并没有 shape 属 ...
spark dataframe 的 fillna 函数等同于 na.fill(),na.fill 函数底层也是调用 fillna,它的作用是 ...
SparkDataFrame是2015年3月13日发布的Spark1.Transformation操作:即转换操作,实际上是在构建一个执行计 ...