She*_*ahn 5 null nan apache-spark apache-spark-sql pyspark
我正在尝试创建一个函数来检查数据质量(nans/nulls 等)我在 PySpark DataFrame 上运行以下代码
df.select([f.count(f.when((f.isnan(c) | f.col(c).isNull()), c)).alias(c) for c in cols_check]).show()
Run Code Online (Sandbox Code Playgroud)
只要要检查的列是字符串/整数,我就没有问题。但是,当我检查数据类型为date
或 的列时timestamp
,我收到以下错误:
Date_Time
由于数据类型不匹配,无法解析“isnan( )”:参数 1 需要(双精度或浮点)类型,但是“Date_Time
”是时间戳类型。;;\n'聚合...
列中存在明显的空值,我该如何解决这个问题?
bla*_*hop 10
您可以用来df.dtypes
检查每列的类型,并能够以不同的方式处理timestamp
和date
空计数,如下所示:
from pyspark.sql import functions as F
df.select(*[
(
F.count(F.when((F.isnan(c) | F.col(c).isNull()), c)) if t not in ("timestamp", "date")
else F.count(F.when(F.col(c).isNull(), c))
).alias(c)
for c, t in df.dtypes if c in cols_check
]).show()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4919 次 |
最近记录: |