![](/img/trans.png)
[英]How to find cells with None values (string data-type) and replace them with Null in Spark DataFrame?
[英]How to count No. of cells with None value (string data-type) in all columns of a Spark DataFrame?
我有一个大数据集,有些列具有 String 数据类型。 由于拼写错误,一些单元格没有值,但写成不同的 styles(小写或大写字母,有或没有空格,有或没有括号等)。
我想计算所有列中所有这些值(不包括 Null 值)的编号。 示例数据集如下:
data = [("A", "None", 1), \
("A", "(None)", 2), \
("[None", "none", 3), \
("(none]", "[None]", 4), \
("A", "(none)", 5), \
("A", "(none", 6), \
("A", "none ", 7), \
(" NOne ", None, None), \
]
# Create DataFrame
columns= ["col_1", "col_2", "Number"]
df = spark.createDataFrame(data = data, schema = columns)
预期结果是:
{'col_1': 3, 'col_2': 7, 'Number': 0}
知道如何在 PySpark 之前做到这一点吗?
逻辑是:
count_result = {}
for c in df.columns:
count_result[c] = df.select(c).filter(F.lower(F.trim(F.regexp_replace(c, r"(?:^\[|^\(|^\<|^\{|\]$|\)$|\>$|\}$)", ""))) == "none") \
.count()
print(count_result)
Output:
{'col_1': 3, 'col_2': 7, 'Number': 0}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.