gpt4 book ai didi

Pyspark 计数包括空值

转载 作者:行者123 更新时间:2023-12-04 07:41:19 25 4
gpt4 key购买 nike

运行一个简单的例子 -

dept = [("Finance",10),("Marketing",None),("Sales",30),("IT",40)]
deptColumns = ["dept_name","dept_id"]
rdd = sc.parallelize(dept)
df = rdd.toDF(deptColumns)
df.show(truncate=False)

print('count the dept_id, should be 3')
print('count: ' + str(df.select(F.col("dept_id")).count()))
我们得到以下输出 -
+---------+-------+
|dept_name|dept_id|
+---------+-------+
|Finance |10 |
|Marketing|null |
|Sales |30 |
|IT |40 |
+---------+-------+

count the dept_id, should be 3
count: 4
我在数据块上运行,这是我的堆栈 -
Spark 3.0.1 Scala 2.12、DBR 7.3 LTS
谢谢你的帮助!!

最佳答案

count之间有细微的差别Dataframe API 和 count 的功能Spark SQL 的功能。第一个简单地计算行而第二个可以忽略 null值。
您正在使用 Dataframe.count() .根据文档,此功能

returns the number of rows in this DataFrame


所以结果 4是正确的,因为数据框中有 4 行。
null值应该被忽略,你可以使用 Spark SQL function count可以忽略 null值(value)观:

count(expr[, expr...]) - Returns the number of rows for which the supplied expression(s) are all non-null.


例如
df.selectExpr("count(dept_id)").show()
返回 3 .

关于Pyspark 计数包括空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67445814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com